Java字符串对齐

时间:2016-01-10 20:25:45

标签: java alignment

我的项目遇到了一些麻烦。这个想法是,创建一个程序,它使用扫描仪扫描.txt文件,其中包含指示要使用的对齐方式的数字(1 =左对齐,2 =右对齐&3 =中央),第二个数字在input是行的最大长度,第三个是单词的计数,然后是文本。

我制作了简单的程序,将文本对齐到左边,但不知道如何正确对齐和居中。

以下是案例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;
            }                                               
        }
    }
}    

}

2 个答案:

答案 0 :(得分:0)

首先,你必须计算你需要多少空格。

其次,您需要一个方法,将添加所需的空间数。

left align =在单词后添加空格。

右对齐=在单词前添加空格。

center align =在前一半和后一半增加一半的空间。

答案 1 :(得分:0)

如果适合,请不要立即打印出每个单词。相反,构建一个线表示(例如,使用StringBuilder),当行已满(或输出用完)时,您可以根据对齐计算所需的前导空格数。