我的 printf 语句有问题。我不能让他们准确。这是我遇到问题的代码片段。

while(choice != 4){
        if(choice == 1){
            System.out.println("NAME            ID          GPA\n");
            for(j = 0; j < i ;j++){
                System.out.printf("%s", fullName[j]);
                System.out.printf("%10d", id[j]);
                System.out.printf("%15.2f\n", gpa[j]);
            }
            System.out.println("");
        }

它打印这个。
NAME            ID          GPA

Hoffman Caleb Joseph         1           4.00
Jones Bob Cray         2           3.80
Mitten Jose Crush         3           1.53

我怎样才能让它全部排队?

最佳答案

如果在 name 格式语句中添加一个 int,它将对齐文本:

 System.out.printf("%20s", fullName[j]);

将打印
Hoffman Caleb Joseph         1           4.00
      Jones Bob Cray         2           3.80
   Mitten Jose Crush         3           1.53

如果你想左对齐它然后在前面放一个减号
 System.out.printf("%-20s", fullName[j]);

将打印
Hoffman Caleb Joseph         1           4.00
Jones Bob Cray               2           3.80
Mitten Jose Crush            3           1.53

顺便说一句,您不需要 3 个单独的格式语句,您可以将所有 3 个合并为 1 个:
System.out.printf("%-20s%10d%15.2f%n", fullName[j], id[j], gpa[j]);

另请注意,新行是 %n 而不是 \n%n 是一个格式字符串,将打印系统相关的换行符

关于java - 我无法让我的 printf 语句在 Java 中对齐,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31307743/

10-16 14:25
查看更多