2017-04-24 90 views
0

我想將此2d字符數組轉換爲字符串。問題在於,即使通過輸入數組也不會輸出100,000個字符。將2d char數組轉換爲字符串的正確方法是什麼?將2d字符數組轉換爲字符串

public String printMaze(char[][] maze) { 
    String s= ""; 
    for(int i=0;i<maze.length;i++){ 
     for(int j=0; i<maze[i].length;j++){ 
      s= maze.toString();; 
     } 
    } 
    return s; 
} 
+1

提供樣品的輸入和輸出,使之更加清晰。 – sai

+0

你正在調用'maze.toString()',你想如何加入字符?因爲你可以'返回Arrays.deepToString(迷宮);' –

+0

它不輸出任何。我使用的測試服務器殺死它,一旦它擊中100k –

回答

3

你的內循環有問題,我也沒有看出來你真的concetanting從2D字符數組的字符串。這裏是內循環的問題:

for (int j=0; i < maze[i].length; j++) { 
     // ^^^^ this will always be true for certain values of i 
     // it should be j < maze[i].length 
    s= maze.toString();; 
} 

換句話說,根據迷宮的界限,你的內循環可能會永遠旋轉。相反,嘗試下面的代碼:

public String printMaze(char[][] maze) { 
    String s = ""; 
    for (int i=0; i < maze.length; i++) { 
     for (int j=0; j < maze[i].length; j++) { 
      s += maze[i][j]; 
     } 
     // uncomment next line if you want the maze to have rows 
     // s += "\n"; 
    } 
    return s.toString(); 
} 

但作爲@ElliottFrisch提到的,你可以只返回Arrays.deepToString(maze)

+0

我假設一個迷宮應該有行,而不是一個長字符串 –

+0

,除非我們不能使用StringBuilder –

+1

爲什麼你不能使用StringBuilder?它是一個java.lang類 –

-1

希望這將有助於..

public String printMaze(char[][] maze) { 
String s= ""; 
for(int i=0;i < maze.length;i++){ 
    for(int j=0; j < maze[i].length;j++){ 
     s = s + maze[i][j]; 
    } 
} 
return s; 
} 
+0

給了我一個數組越界的異常 –

+0

請也解釋你已經改變 –

+0

沒有什麼上面的代碼現在完全相同我的 –