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),当线条已满(或者您 运行 没有输入)时,您可以根据对齐方式。