目前我有以下方法:
public static void printDoubleIntArray(int[][] doubleIntArray) {
for (int x = 0; x < doubleIntArray.length; x++) {
System.out.println();
for (int y = 0; y < doubleIntArray[x].length; y++) {
System.out.print(doubleIntArray[x][y]);
}
}
}
当参数“doubleIntArray”只是0到9之间的数字时,它可以正常工作,如下面的打印输出:
0000000
0000300
0033332
0023323
0022223
0023233
0003332
但是,如果数组中每个元素的整数大于9,那么我得到如下内容:
0000000
000121797
001717171716
0101617171617
001616161617
081617161717
001417171716
我想知道的是如何将上述示例打印出来:
0 0 0 0 0 0 0
0 0 0 12 17 9 7
0 0 17 17 17 17 16
0 10 16 17 17 16 17
0 0 16 16 16 16 17
0 8 16 17 16 17 17
0 0 14 17 17 17 16
答案 0 :(得分:2)
System.out.print(doubleIntArray[x][y] + "\t");
\ t打印标签
但是在这种情况下它会打印出这样的东西:(但我猜你还可以)
0 0 0 0 0 0 0
0 0 0 12 17 9 7
0 0 17 17 17 17 16
0 10 16 17 17 16 17
0 0 16 16 16 16 17
0 8 16 17 16 17 17
0 0 14 17 17 17 16
答案 1 :(得分:2)
您可以尝试使用java.text.NumberFormat
和一个显示固定宽度的每个数字的模式。然后将它们连接在一行......
答案 2 :(得分:2)
或者使用String.format("%4d", myinteger)
让每个整数占用4个字符,并正确填充。
答案 3 :(得分:1)
答案 4 :(得分:1)
您有2个选项。首先,您可以在第二个\t
循环中使用for
。但我认为你可以添加\t
和空白字符以避免恶化。也可以提供这一点,在第二个for循环中添加if-else
结构。我的意思是
if(doubleIntArray[y].length<10){
System.out.print(doubleIntArray[x][y] + "\t ");
//Tab+two whitespace.
} else {
if(doubleIntArray[y].length>10) {
System.out.print(doubleIntArray[x][y] + "\t ");
//Tab+one whitespace
} else {
System.out.print(doubleIntArray[x][y] + "\t");
//Tab+NO whitespace
}
}
我认为逻辑是正确的。对不起我的答案设计。我现在在公共汽车上,我写不出来。如果我再次对此感到抱歉。
答案 5 :(得分:0)
public static void printDoubleIntArray(int[][] doubleIntArray) {
for (int x = 0; x < doubleIntArray.length; x++) {
System.out.println();
for (int y = 0; y < doubleIntArray[x].length; y++) {
System.out.print(doubleIntArray[x][y],"\t");
}
System.out.print("\n");
}
}