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

如何在java中格式化整数数组,java,string,string-formatting,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[

目前我有以下方法:

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]);
    }
}
}
但是,如果数组中每个元素的整数都大于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
\t打印一个标签

但在这种情况下,它会打印出这样的东西:(但我想你可以)

您可以尝试使用和一个以固定宽度显示每个数字的模式。。然后将它们连接成一行

System.out.printf("%4d", doubleIntArray[x][y]);
4表示数字将打印的最小空间


此方法的其他选项将在下面进行说明

或使用
String.format(“%4d”,myinteger)
使每个整数占用4个字符,并正确填充。

您有2个选项。首先,您可以在第二个
for
循环中使用
\t
。但我认为您可以添加
\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
    }
}
if(双阵列[y].长度10){
系统输出打印(双阵列[x][y]+“\t”);
//制表符+一个空格
}否则{
系统输出打印(双阵列[x][y]+“\t”);
//制表符+无空格
}
}
我认为逻辑是这样的。对不起,我的答案是设计。我现在在公共汽车上,书写不流畅。如果我犯了错误,请再次道歉。

公共静态void printDoubleIntArray(int[]]doubleIntArray){
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");
}
}
对于(int x=0;x
试试这个。那么你会这么做吗?使用tab(
\t
)或在转换为字符串后通过检查双精度的长度来计算所需的空格数。这在很大程度上取决于OP希望如何格式化数字以供使用。例如,由于它寻找基本的显示目的,这是一个可能的解决方案。请注意,如果您想要一种像样的演示格式,最好使用
String#format
System.out.printf("%4d", doubleIntArray[x][y]);
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
    }
}
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");
}
}