我正在练习使用Scanner,但遇到了奇怪的事情,我希望获得社区的帮助以了解这一点。 我有一个带有以下数字的文本文件
ngOnInit
使用以下Java代码读取文本文件
1,2,3,9
5,9
3
,结果总是跳过最后一个数字。
fsc = new Scanner(new File(fileName));
fsc.useDelimiter(",");
while (fsc.hasNextLine()) {
while (fsc.hasNextInt()){
System.out.print(fsc.nextInt() + ",");
}
System.out.println();
fsc.nextLine();
}
我如何使其不忽略最后一项?
编辑:某些解决方案要求将它们夹到一个数组中,并将字符串转换为整数,但是我想使用1,2,3,
5,
3,
来探索
编辑2:很抱歉,似乎很多人误解了这个问题。我的意思是丢失的是每行的最后一位数字丢失了!
答案 0 :(得分:3)
这是因为您删除了标准定界符,即换行符。您需要
fsc.useDelimiter("[ ,\r\n]");
这变成了
fsc = new Scanner(new File(fileName));
fsc.useDelimiter("[ ,\r\n]");
while (fsc.hasNextLine()) {
while (fsc.hasNextInt()){
System.out.print(fsc.nextInt() + ",");
}
System.out.println();
if (fsc.hasNextLine())
fsc.nextLine();
}
答案 1 :(得分:2)