2014-09-03 112 views
0
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循环三次打印它,但我想知道是否有更简单的方法来做到这一点。

+1

添加一个新行每个'索引%3 == 0'? – TheLostMind 2014-09-03 08:39:29

+1

@TheLostMind我认为它应该是'index%3 == 2'? java数组是基于0的。 – Kent 2014-09-03 08:44:54

+0

@Kent - 是的。这将在开始时添加一个新的行。这也取决于你放置线的位置。 – TheLostMind 2014-09-03 08:46:57

回答

2

的printf可能会有帮助。

这个循环应该做的:

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

感谢您的是最简单的一个和工作一个 – user2775042 2014-09-03 08:50:24

+0

@ user2775042更好地遵循Java命名约定。例如。使用'test'而不是'Test'作为变量名称 – Kent 2014-09-03 08:53:03

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名称。

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(); 
     } 
    } 
+0

@Kent也许**完全错误的答案**有点太多了。他错误地使用了限制,但仅此而已。所有你提到的都是由此造成的。如果用'Test [i-1]'代替'Test [i]',那很好(不是完美的答案,但很好)。 – Eypros 2014-09-03 08:55:54

+0

@Eypros ok。合理的,他很可能在他写'for ...'时使用'i-1',但后来他忘了。我删除评论(因为我不能再编辑它),但仍然是**错误的答案。除了例外。 – Kent 2014-09-03 09:03:20

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 

现在关于如何变换的一个维阵列成二维阵列,这取决于。我们可以从头开始声明一个二维数组,也可以指定行的宽度,直到行被填充为止。

这两种技术都可以工作,并根据情况,你可能会发现一种方法适合优于其他一些问题(但有可能不是解决所有问题的完美解决方案)。

相关问题