尝试从文件中读取int。我的问题是我的代码读取了第一行中的所有整数,但是在后续行中它会跳过第一个数字。 为了说明我的文件有这些数字: 1,4,6,7,8,11,9, 1,4,6,7,8,11,12, 2,4,6,7,11,12,0,
但是当我使用下面的代码时,它只会打印1 4 6 7 8 11 9然后打印4 6 7 8 11 12然后2 ...它会跳过第一个号码。
Scanner file = null;
ArrayList<Integer> listtwo = new ArrayList<>();
try {
file = new Scanner(new File(filename+".txt")).useDelimiter(",| ");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
while(file.hasNext()){
if (file.hasNextInt()){
listtwo.add(file.nextInt());
}
file.next();
}
for (Integer i: listtwo) System.out.println(i);
答案 0 :(得分:2)
问题是你的
file.next();
删除它。
答案 1 :(得分:1)
您需要更改
while(file.hasNext()){
if (file.hasNextInt()){
listtwo.add(file.nextInt());
}
file.next();
}
编辑
int i = 0;
while(file.hasNextInt()){
listtwo[i++] = file.nextInt();
}
在您的代码中,它首先搜索下一个&#34;字&#34;在文本文件中。 &#34;如果&#34;然后声明告诉它在第一个&#34; word&#34;之后找到下一个int,因此它会跳过该行的第一个数字。
答案 2 :(得分:0)
像这个文件一样使用.next();如果你有file.hasNextInt()为真,则运行twise以避免使用其他情况。
while(file.hasNext()){
if (file.hasNextInt()){
listtwo.add(file.nextInt());
}else{
file.next();
}
}