[英]Scanning 2D String Array From a File
Scanner input = null;
try {
input = new Scanner (new File(filename));
} catch (FileNotFoundException ex) {
Logger.getLogger(Puzzle.class.getName()).log(Level.SEVERE, null, ex);
}
int m = 4;
int n = 4;
Puzzle = new String [m][n];
while (input.next()!=null){
for (int i=0;i<m;i++){
for (int j=0;j<n;j++){
Puzzle[i][j]= input.next();
System.out.println(Puzzle[i][j]);
}
}
}
我對這段代碼有一點問題。 當我掃描輸入以放入我的拼圖數組時,它會跳過第一個字符串。 例如,在第一行中,假設4個字母“ ABCD”處於打開狀態。 跳過“ A”並繼續“ B”。 我知道這也許對你們來說太容易了,但是作為初學者,我有點需要您的幫助。
您在while循環的每次迭代中都消耗多個令牌-在循環條件下調用next()
時使用一個令牌(不使用),在for循環中調用next()
時使用另一個令牌(存儲) 。
您應該更改代碼的邏輯。 您不需要while循環。
例如 :
boolean done = false;
for (int i=0;i<m && !done;i++){
for (int j=0;j<n && !done;j++){
Puzzle[i][j]= input.next();
if (Puzzle[i][j] == null)
done = true;
System.out.println(Puzzle[i][j]);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.