2015-05-16 75 views
1

我想在java 2d char數組中存儲矩陣,但由於我無法接受char中的輸入,因此我試圖尋找最佳解決方案以存儲在2d中字符數組。在2d字符數組中存儲矩陣Java

例如。矩陣

1112 
1912 
1892 
1234 

我試了一下: -

for(int i=0; i<n; i++) 
     for(int j=0; j<n; j++) 
      map[i][j]=sc.next().charAt(0); 

給出錯誤的輸出。還有其他建議嗎?

+0

什麼是sc在這裏? –

+3

@nileshvirkar,可能是'掃描儀' –

+2

矩陣總是'n * n'?你的意思是*錯誤的輸出*? (int j = 0; j

回答

1

您需要更改代碼以

String data = ""; 
int count = 0; 
for (int i = 0; i < n; i++) { 
    if (sc.hasNext()) { 
     data = sc.next(); 
     count = 0; 
    } else { 
     break; 
    } 
    for (int j = 0; j < n; j++) 
    map[i][j] = data.charAt(count++); 
} 

爲我的循環和j是用於生成矩陣索引中和,因爲你需要閱讀的字符,你必須先閱讀令牌通過令牌然後遍歷自己的角色另一個用戶答案失敗,因爲用戶對矩陣和字符讀取都使用j循環,所以如果在最後一次迭代j ie n-1(表示矩陣長度不是字符串長度),如果字符串長度小於n-1,你將得到IndexOutOfbound例外in.charAt(j)

+0

完美地工作,但你能解釋一下邏輯。我的意思是它類似於@鈉24的答案,除了顯式使用count。但是上面的那個給出了一個例外,而這個打印完美。 ? –

+0

@amanshivhare更新了我的答案 – codegasmer