3

行の半分が名前で、1 行おきにスペースで区切られた一連の整数であるテキスト ファイルがあります。

Jill

5 0 0 0

Suave

5 5 0 0

Mike

5 -5 0 0

Taj

3 3 5 0

名前を文字列の配列リストに変換することに成功しましたが、1 行おきに読み取って整数の配列リストに変換し、それらの配列リストの配列リストを作成できるようにしたいと考えています。これが私が持っているものです。うまくいくはずだと思いますが、整数の配列リストに何も入力されていないため、明らかに正しいことをしていません。

rtemp は、1 行の整数の配列リストです。allratings は arraylists の arraylist です。

while (input.hasNext())
        {

            count++;

            String line = input.nextLine(); 
            //System.out.println(line);

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

            if (count % 2 == 0) //for every other line, reads the ratings
            {
                while (input.hasNextInt())
                {
                    int tempInt = input.nextInt();
                    rtemp.add(tempInt);
                    System.out.print(rtemp);
                }

                allratings.add(rtemp);  
            }

        }
4

1 に答える 1

5

String 行か int 行かを確認する前に行を読み取ったため、これは機能しません。そのため、電話をかけるnextInt()と、すでに番号を超えています。

あなたがすべきことはString line = input.nextLine();、最初のケース内に移動するか、さらに良いことに、行を直接操作することです。

String[] numbers = line.split(" ");
ArrayList<Integer> inumbers = new ArrayList<Integer>();
for (String s : numbers)
  inumbers.add(Integer.parseInt(s));
于 2012-04-19T21:49:37.313 に答える