2016-05-13 58 views
-1

我想弄清楚如何顯示每個數字從一個多維數組的相同「行」的單線,用逗號分隔它們。從最後一個數字後面的逗號分隔的多維數組中打印出每個數字?

這是怎麼了,我宣佈多維數組

int[][] grid = { 
      {1, 2, 3}, 
      {4}, 
      {5, 6}, 
      {123, 4567, 78901, 234567} 
    }; 

這是循環中使用了帶有逗號之間,以顯示在單獨的行每個「行」:

for(int[] row: grid){ 
     for(int col: row){ 
      System.out.print(col + ", "); 
     } 
     System.out.println(); 
    } 

或者:

for(int row = 0; row < grid.length; row++){ 
     for(int col = 0; col < grid[row].length; col++){ 
      System.out.print(grid[row][col] + ", "); 
     } 
     System.out.println(); 
    } 

這一切工作正常,但每個「行」的最後一個數字代表逗號以及結果:

1, 2, 3, 
4, 
5, 6, 
123, 4567, 78901, 234567, 

我該如何使最後一個數字沒有得到逗號?

+0

返回僅打印逗號時'COL <網格[行]。長度-1' – StephaneM

+0

快速字符串:'的System.out 。((col> 0?「,」:「」)+ grid [row] [col]);'(更好的選項是可能的) – Marco13

回答

0

很簡單,並且容易,你可以這樣做:

for(String s : Arrays.deepToString(grid).split("(?<=]), ")) 
{ 
    System.out.println(s.replaceAll("[\\]\\[]","")); 
} 

這裏:

  • Arrays.deepToString將數組作爲字符串返回。
  • .split("(?<=]), ")會將其拆分到1-d數組(位於grid)結束處。
  • s.replaceAll("[\\]\\[]","")將刪除所有的[],其存在於由Arrays.deepToString
相關問題