我的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
我怎样才能把它全部排好?
答案 0 :(得分:5)
如果在名称格式语句中添加一个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
是一个格式字符串,用于打印系统相关的新行字符
答案 1 :(得分:1)
在格式说明符中,您应使用-
之类的"%-10d
来对齐列。