从文件中扫描2D字符串数组

时间:2015-12-06 14:56:05

标签: java arrays file 2d

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;。我知道也许对你们来说太容易了,但作为一个初学者,我需要你的帮助。

1 个答案:

答案 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}}