我正在尝试使用Scanner进行练习,但是遇到了奇怪的情况,我希望获得社区的帮助以了解这一点。
我有一个带有以下数字的文本文件
1,2,3,9
5,9
3
使用以下Java代码读取文本文件
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,
我如何使其不忽略最后一项?
编辑:一些解决方案要求将它们夹到一个数组并将字符串转换为整数,但是我想使用
Scanner.nextInt()
代替编辑2:对不起,似乎很多人误解了这个问题。我的意思是丢失的是每行的最后一位数字丢失了!
最佳答案
这是因为您删除了标准定界符,即换行符。你需要
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();
}