我有一个文本文件,其中一半的行是名称,每隔一行是由空格分隔的一系列整数:
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);
}
}
答案 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));