带有 Scanner.hasNextInt() 的循环跳过最后一项

我正在练习使用扫描仪,我遇到了一个奇怪的情况,我希望社区提供一些帮助来理解这一点。我有一个带有以下数字的文本文件


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:我很抱歉似乎很多人误解了这个问题。我的意思是缺少每行的最后一位数字!


肥皂起泡泡
浏览 118回答 2
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(); }

哔哔one

只需添加一个条件来检查新行,
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java