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个字母&#34; A B C D&#34;在...上。它会跳过&#34; A&#34;继续&#34; B&#34;。我知道也许对你们来说太容易了,但作为一个初学者,我需要你的帮助。
答案 0 :(得分:0)
你在while循环的每次迭代中消耗多个标记 - 一个是在循环条件下调用next()
(未使用),另一个是在调用next()
内部时调用 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]);
}
}
for loops(你存储的)。
您应该更改代码的逻辑。你不需要while循环。
例如:
{{1}}