如何使用printf在java中打印列?

pdkcd3nj  于 2021-07-04  发布在  Java
关注(0)|答案(1)|浏览(293)

我在试着得到这样的东西:

Day         Car 1      Car 2
1           3800.20    2200.42
2           2700.67    3678.14
3           2900.00    2694.47

我在for循环中尝试过这样做(字符串的第一行代码在for循环之外,但看起来相同,只是变量不同):

System.out.printf("%6d %6d %6d",Day,Car1,Car2);

但我只是犯了些错误。我想把这些列左对齐。
我该怎么做?非常感谢你!

svujldwt

svujldwt1#

要将列向左对齐, - 必须在格式化模式中使用,因为默认情况下,数字列向右对齐:

Object[][] a = {
    {1, 3800.20, 2200.42},
    {2, 2700.67, 3678.14},
    {3, 2900.00, 2694.47}
};
System.out.printf("%3s  %-9s  %-9s%n", "Day", "Car1", "Car2");
for (Object[] r : a) {
    System.out.printf("%-3d  %-9.2f  %-9.2f%n", r[0], r[1], r[2]);
}

输出:

Day  Car1       Car2     
1    3800.20    2200.42  
2    2700.67    3678.14  
3    2900.00    2694.47

相关问题