3

我有一个文本文件,其中一半的行是名称,每隔一行是一系列用空格分隔的整数:

Jill

5 0 0 0

Suave

5 5 0 0

Mike

5 -5 0 0

Taj

3 3 5 0

我已经成功地将名称转换为字符串数组列表,但我希望能够读取每隔一行并将其转换为整数数组列表,然后制作这些数组列表的数组列表。这就是我所拥有的。我觉得它应该可以工作,但显然我做的不对,因为我的整数数组列表中没有任何内容。

rtemp 是单行整数的数组列表。allratings 是数组列表的数组列表。

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 回答