import java.util.Scanner;
import java.io.*;
import java.util.ArrayList;
public class Test
{
public static void main (String args[]) throws java.io.IOException
{
Scanner s = new Scanner(new File("filepath"));
ArrayList<Integer> list = new ArrayList<Integer>();
while (s.hasNext()){
if(s.hasNextInt()){
list.add(s.nextInt());
}
}
s.close();
System.out.println(list);
}
}
我正在尝试从每行具有以下格式的文本文件中只读取整数:text integer text。
这是我目前所拥有的,但是当我编译并运行它时,无论出于何种原因,它都打印出永无止境的 []。
请注意,我更改文件路径只是为了将其上传到此处,这不是问题。
最佳答案
When I compile and run it prints never ending
这个循环是罪魁祸首:
while (s.hasNext()){
if(s.hasNextInt()){
list.add(s.nextInt());
}
}
考虑当扫描器 hasNext
时会发生什么,但无论下一个标记是什么,它都不是 int
。在这种情况下,您的循环将变为无限循环,因为循环体不消耗任何东西,使扫描器处于与循环开始时完全相同的状态。
要解决此问题,请将 else
添加到您的 if
,读取 s.next()
,并忽略结果:
while (s.hasNext()){
if(s.hasNextInt()){
list.add(s.nextInt());
} else {
s.next();
}
}
关于java - 将文件中的整数读入数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22213916/