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循环三次来打印它,但我想知道是否有更简单的方法来做它。
答案 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");
}
并更改Test
中test
的名称。
答案 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;。
这两种技术都可行,并且根据具体情况,您可能会发现一种方法比另一种方法更适合某些问题(但对于所有问题,这可能不是一个完美的解决方案)。