0

Currently I have the following method:

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]);
    }
}
}

It works perfectly when the parameter "doubleIntArray" is only numbers from 0 - 9 like in the following print out:

0000000
0000300
0033332
0023323
0022223
0023233
0003332

However, if the integers in each element of the array become larger than 9 then I get something like the following:

0000000
000121797
001717171716
0101617171617
001616161617
081617161717
001417171716

What I would like to know is how do I make the above example print out like so:

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
4

6 回答 6

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
于 2013-07-04T16:04:08.617 回答
2

您可以尝试使用java.text.NumberFormat一个以固定宽度显示每个数字的模式。然后将它们全部连接在一行中...

于 2013-07-04T16:04:37.273 回答
2

Or use String.format("%4d", myinteger) to have each integer occupy 4 chars, and be properly right padded.

于 2013-07-04T16:11:20.240 回答
1

您有 2 个选项。首先,您可以\t在第二个for循环中使用。但我认为您可以添加\t空格字符以避免恶化。也可以提供这个,if-else在第二个 for 循环中添加结构。我是说

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
    }
}

逻辑是我认为的。对不起我的答案设计。我现在在公车上,写得不太流畅。如果我有一个错误再次抱歉。

于 2013-07-04T16:28:34.463 回答
1
System.out.printf("%4d", doubleIntArray[x][y]);

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

此方法的其他选项在此处说明

于 2013-07-04T16:11:01.273 回答
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");
}
}
于 2013-07-05T11:29:28.123 回答