【问题标题】:How to print align with my display [duplicate]如何打印与我的显示器对齐[重复]
【发布时间】:2014-07-08 14:24:33
【问题描述】:
for (int j = 0; j < numStu; j++) {  

System.out.println((j + 1) + "\t" + StudentName[j] + "\t\t\t" + (Marks[j]) + "\t" + Grade[j]);  

} 


No. Name            Marks   Grade
1   ADRIAN TAN          46.00   C-
2   KIM CHEE LIONG HAN          76.00   A-
3   PETER LIM AH MENG           64.00   B-
4   WAYNE WALKER            23.00   F

抱歉之前的问题>

No. Name                   Marks    Grade
1   ADRIAN TAN             46.00    C-
2   KIM CHEE LIONG HAN     76.00    A-
3   PETER LIM AH MENG      64.00    B-
4   WAYNE WALKER           23.00    F

【问题讨论】:

    标签: java printing alignment output


    【解决方案1】:

    嗯,你是这个意思吗?:

    for (int j = 0; j < numStu; j++) {  
    System.out.println("\n" + (j + 1) + " " + StudentName[j] + "\t" + (Marks[j]) + "\t" +     Grade[j]);}  
    

    它应该做一件事

    【讨论】:

    • 这会解决条目长度不同,因此位于不同制表符括号中的问题
    • 将整行放入ArrayList?
    【解决方案2】:

    说 X 是你想要的长度,然后使用String.format("%-Xs",argument)。这会将字符串切割或延长到 X 长度。 % 符号后的 - 表示在字符串后添加空格。如果省略 - 符号,它仍然可以工作,但看起来很奇怪。

    这是一个例子

    String[] name = {"Ben", "Jacob", "Tyler"};
            int[] age = {5, 16, 25};
            int[] salary = {0, 1000, 100000};
            System.out.printf("No.\t%-10s\t%-10s\t%-10s\n", "Name", "Age", "Salary");
            for (int i = 0; i < name.length; i++) {
                System.out.println(String.format("%-3d\t%-10s\t%-10d\t%-10d", i, name[i], age[i], salary[i]));
            }
    

    编辑:从 String.format("%-X.Xs",argument) 更改为 String.format("%-Xs",argument)

    【讨论】:

    • @RichardTingle 检查更新的答案
    • 酷,有道理
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 2014-07-08
    • 2018-05-20
    • 2013-10-29
    • 2015-10-13
    • 2017-06-27
    • 1970-01-01
    相关资源
    最近更新 更多