2014-09-03 143 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 

現在關於如何變換的一個維陣列成二維陣列,這取決於。我們可以從頭開始聲明一個二維數組,也可以指定行的寬度,直到行被填充爲止。

這兩種技術都可以工作,並根據情況,你可能會發現一種方法適合優於其他一些問題(但有可能不是解決所有問題的完美解決方案)。

相關問題