如何将整数文本行转换为整数数组?

时间:2012-04-19 21:45:57

标签: java

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

Jill

5 0 0 0

Suave

5 5 0 0

Mike

5 -5 0 0

Taj

3 3 5 0

我已成功将名称转换为字符串的arraylist,但我希望能够读取所有其他行并将其转换为整数的arraylist,然后制作这些数组列表的arraylist。这就是我所拥有的。我觉得它应该可以工作,但显然我没有做正确的事,因为没有任何东西填充我的数组整数列表。

rtemp是一行整数的arraylist。 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);  
            }

        }

1 个答案:

答案 0 :(得分:4)

这不起作用,因为在检查行是否为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));