1

私が主に数字のファイルといくつかの文字を持っているとしましょう

1
4
5
d o
2
8 22
6
f

数字と文字の数を数えたいので、nextInt()メソッドしか使用できません。これが私が使用しているコードですが、何らかの理由で無限ループが発生します。デバッグ(入力の出力)を実行すると、5番で停止します。なぜここで間違っているのですか?

public static void mixedF() {
        int numbers = 0; 
        int words = 0;
        int num;      
        try {
            Scanner in = new Scanner(new File("myFile.txt"));
            while(in.hasNext()) {
                try {
                    num = in.nextInt();
                    System.out.println(num);
                    numbers++; 
                }
                catch (InputMismatchException e) { words++; }              

                }            

            System.out.println("numbrers: "+numbers);
            System.out.println("words: "+words);
        }
        catch (FileNotFoundException ex) { ex.getMessage(); }        
    }
4

2 に答える 2

5

に追加する必要があります。追加in.next();catchないと、は先にscanner進みません。

于 2012-07-28T07:09:37.127 に答える
0

問題:nextInt()関数を使用して整数を単独で読み取っています。

スキャナーがキャラクターに出くわすと、キャッチブロックに移動します。キャッチブロックでスキャナーを進めてみてください。そうしないと、文字「d」が何度も読み取られます。

于 2012-07-28T07:33:48.317 に答える