我在那里,我在格式化这个二维数组时遇到了问题。我正在考虑做system.out.printf,但每次我做像%2f这样的事情或类似的东西它都不起作用。
public static void main(String[] args) {
int t,i;
int[][] table = new int[5][6];
for (t = 0; t < 5; t++) {
for (i=0;i < 6; i++) {
table[t][i] = (t*6)+i+1;
System.out.print(table[t][i] + " ");
}
System.out.println();
}
}
}
This is the output:
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
输出的空格应完全对齐,如下所示:http://prntscr.com/6kn2pq
答案 0 :(得分:1)
查看PrintStream#printf
和String#format
以及Formatted Strings
基本上,对于每一行,每列需要格式化以允许至少两个空格......
System.printf("%2d", table[t][i])
下一个问题来自于前进的列在它们之间需要额外的空间;)
System.printf("%2d%4s", table[t][i], "")
这会导致类似......
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
答案 1 :(得分:0)
像这样使用format
:
System.out.format("%4d", table[t][i]);
然后输出如下:
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
或者如果您希望将数字对齐到左侧:
System.out.format("%-4d", table[t][i]);
这导致此输出:
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
答案 2 :(得分:0)
您应该使用printf
代替print
System.out.printf("%3d", table[t][i]);