在行上打印数组的最简单方法是什么?

时间:2014-09-03 08:38:38

标签: java arrays

public static void main(String[] args) {
    String[] Test = new String[]{"1","2","3","4","5","6","7","8","9"};
}

我希望能够像这样打印。

 1  2  3 
 4  5  6
 7  8  9   

我尝试过使用for循环三次来打印它,但我想知道是否有更简单的方法来做它。

4 个答案:

答案 0 :(得分:2)

printf 可以提供帮助。

这个循环应该:

for (int i = 0; i < Test.length; i++) {
    System.out.printf("%s%s", Test[i], i % 3 == 2 ? "\n" : " ");
}

答案 1 :(得分:1)

尝试:

for ( int i = 0 ; i < Test.length ; i++ ) {
    System.out.print(Test[i]+" ");
    if ( i%3 == 2 ) {
        System.out.println();
    }
}

for ( int i = 0 ; i < Test.length-2 ; i++ ) {
    System.out.print(Test[i]+" "+Test[i+1]+" "+Test[i+2]+"\n");
}

并更改Testtest的名称。

答案 2 :(得分:1)

    public static void main(String[] args) {
        String[] Test = new String[]{"1","2","3","4","5","6","7","8","9"};
        for(int i = 1; i <= Test.length; i++) {
            System.out.print(Test[i - 1]+" ");
            if(i % 3 == 0)
               System.out.println();
        }
    }

答案 3 :(得分:0)

为了完美对齐,你需要做两次传球。一个用于跟踪每个待打印列的最大大小,另一个用于打印调整到所需大小的所有列。

这是因为如果你开始打印第一行

1 2 3

宇宙的一些迂回运动最终将保证第二行将包含数字

3425 2352342 2

它会打击你的对齐方式。但是,如果您一次遍历数据,则更新列的最大大小(如有必要)

(row 1) (column 1 max size is 1) (column 2 max size is 1) (column 3 max size is 1)
(row 2) (column 1 max size is 4) (column 2 max size is 7) (column 3 max size is 1)

然后第二次浏览数据时,可以使用正确的填充量打印每一行(最大列宽的空格 - 数据宽度,然后是值)

   1       2 3
3425 2352342 2

现在关于如何将一维数组转换为二维数组,这取决于。可以从一开始就声明一个二维数组,或者你可以指定行的宽度,计算元素,直到一行被填充&#34;。

这两种技术都可行,并且根据具体情况,您可能会发现一种方法比另一种方法更适合某些问题(但对于所有问题,这可能不是一个完美的解决方案)。