如何在终端中对齐文本? (JAVA)

时间:2017-09-27 10:48:55

标签: java string terminal text-alignment

我的代码接受3个参数,第一个(args [0])是文本文件,第二个(args 1)是每行的字符数,最后的参数(args [2])还没有已实现但是可以选择对齐(左对齐,居中对齐或对齐)。 现在,我正在尝试实现左对齐,这是我的代码(对齐代码是最后一个):

try {
    System.out.println("usage: java AlignText" + args[0] + " " + args[1] + " 
    " + args[2]);
    String[] text = FileUtil.readFile(args[0]);
    int paragraphs = Integer.parseInt(args[1]);
    StringBuilder builder = new StringBuilder();

    for (String string : text) {
        if (builder.length() > 0) {
            builder.append(" ");
        }
        builder.append(string);
    }

    String str = builder.toString();
    StringBuilder sb = new StringBuilder();
    int i = str.indexOf(" ",paragraphs);
    while (i>0){
        sb.append(str.substring(0, i).trim());
        sb.append("\n");
        str = str.substring(i);
        if(str.length()>paragraphs){
            i = str.indexOf(" ", paragraphs);
        }
        else {
            i = -1;
        }
    }
    sb.append(str.trim());
    sb.toString();
    //System.out.println(sb.length());
    String[] lines = new String[100];
    int count = 0;
    int index = 0;
    for(int j=0;j<sb.length();j++){
        if(sb.charAt(j) == '\n') {
            lines[index] = sb.substring(count,j).trim();
            System.out.printf("%20s"+"\n", lines[index]);
            //System.out.println("\n");
            count = j;
            index++;
        }
    }

这是我的输出:

enter image description here

0 个答案:

没有答案