如何在java中格式化整数数组

时间:2013-07-04 15:59:11

标签: java string string-formatting

目前我有以下方法:

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

6 个答案:

答案 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)

System.out.printf("%4d", doubleIntArray[x][y]);

4表示该数字将打印的最小空间。

此方法的其他选项已解释为here

答案 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");
}
}