簡體   English   中英

從文件掃描二維字符串數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM