Java 字符串对齐
Java String Alignment
我的项目遇到了一些问题。这个想法是,创建一个程序,它使用扫描仪扫描 .txt 文件,其中包含指示使用哪种对齐方式的数字(1 = 左对齐,2 = 右对齐和 3 = 居中),输入中的第二个数字是行的最大长度,第三个数字是单词数,然后是文本。
我做了一个简单的程序让文本左对齐,但不知道如何右对齐和居中。
这是案例 1 的代码(如果您提出一些修改建议或有更优雅的解决方案,我将很高兴)。非常感谢!
import java.util*
public class Align {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int command = sc.nextInt();
int sumOfChar = 0;
boolean First = true;
switch (command) {
case 1:
int maximumLength = sc.nextInt();
int numberOfWords = sc.nextInt();
for (int i = 0; i < numberOfWords; i++) {
String word = sc.next();
int a = word.length();
sumOfChar = sumOfChar + a;
if (First) {
System.out.print(word);
First = false;
}
else if (sumOfChar < maximumLength) {
System.out.print(" "+word);
sumOfChar++;
}
else {
System.out.println();
System.out.print(word);
sumOfChar = a;
}
}
}
}
}
首先你必须计算你需要多少space。
其次,您需要一个方法来添加所需的 space 个数。
左对齐 = 在单词后添加 spaces。
右对齐 = 在单词前添加 spaces。
居中对齐 = 添加一半 space 之前和之后的一半。
如果适合,请不要立即打印出每个单词。相反,构建一个线条表示(例如使用 StringBuilder
),当线条已满(或者您 运行 没有输入)时,您可以根据对齐方式。
我的项目遇到了一些问题。这个想法是,创建一个程序,它使用扫描仪扫描 .txt 文件,其中包含指示使用哪种对齐方式的数字(1 = 左对齐,2 = 右对齐和 3 = 居中),输入中的第二个数字是行的最大长度,第三个数字是单词数,然后是文本。
我做了一个简单的程序让文本左对齐,但不知道如何右对齐和居中。
这是案例 1 的代码(如果您提出一些修改建议或有更优雅的解决方案,我将很高兴)。非常感谢!
import java.util*
public class Align {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int command = sc.nextInt();
int sumOfChar = 0;
boolean First = true;
switch (command) {
case 1:
int maximumLength = sc.nextInt();
int numberOfWords = sc.nextInt();
for (int i = 0; i < numberOfWords; i++) {
String word = sc.next();
int a = word.length();
sumOfChar = sumOfChar + a;
if (First) {
System.out.print(word);
First = false;
}
else if (sumOfChar < maximumLength) {
System.out.print(" "+word);
sumOfChar++;
}
else {
System.out.println();
System.out.print(word);
sumOfChar = a;
}
}
}
}
}
首先你必须计算你需要多少space。
其次,您需要一个方法来添加所需的 space 个数。
左对齐 = 在单词后添加 spaces。
右对齐 = 在单词前添加 spaces。
居中对齐 = 添加一半 space 之前和之后的一半。
如果适合,请不要立即打印出每个单词。相反,构建一个线条表示(例如使用 StringBuilder
),当线条已满(或者您 运行 没有输入)时,您可以根据对齐方式。