0

このプログラムはテキスト ファイルを読み取ります。この場合は、次のファイルを読み取ります。

Sam

5 0 0 0

Dave

5 5 0 0

Bill

5 -5 0 0

Louise

3 3 5 0

プログラムの早い段階で、次の while ループを実行します。

            int count = 0;


        while (input.hasNextLine())
        {

            count++;

            if (count % 2 == 1) //for every other line, reads the name
            {
                String line = input.nextLine(); 
                names.add(line); //puts name into array
            }

            if (count % 2 == 0) //for every other line, reads the ratings
            {
                ArrayList<Integer> rtemp = new ArrayList<Integer>();
                while (input.hasNextInt())
                {
                    int tempInt = input.nextInt();
                    rtemp.add(tempInt);
                }               
                allratings.add(rtemp);  

            }


        }

どういうわけか、この while ループが完了するまでに、int カウントは 14 になっています。私はそれを 8 にしたいだけであり、テキストが 8 行しかないことを考えると、そうあるべきだと考えています。行ごとに実行します。明らかに、これはプログラムの後半で大きな問題を引き起こします。何が起こっているのですか?

4

1 に答える 1

0

あなたの2番目のループから、カーソルが次の行に移動しないようです...あなたの直後に下の行を追加しましたが、 allratings.add(rtemp); うまくいきました。

if(input.hasNext())
  input.next();
于 2012-04-22T15:21:33.687 に答える