Java 2d数组格式化?

时间:2015-03-24 05:10:39

标签: java

我在那里,我在格式化这个二维数组时遇到了问题。我正在考虑做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

3 个答案:

答案 0 :(得分:1)

查看PrintStream#printfString#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]);