为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

肥皂起泡泡 2022-06-30 10:41:49
我正在练习使用扫描仪,我遇到了一个奇怪的情况,我希望社区提供一些帮助来理解这一点。我有一个带有以下数字的文本文件1,2,3,95,93使用以下 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:我很抱歉似乎很多人误解了这个问题。我的意思是缺少每行的最后一位数字!
查看完整描述

2 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

这是因为您删除了标准分隔符,即换行符。你需要


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(); 

}


查看完整回答
反对 回复 2022-06-30
?
哔哔one

TA贡献1854条经验 获得超8个赞

只需添加一个条件来检查新行,

//img1.sycdn.imooc.com//62bd0d960001613a06600621.jpg


查看完整回答
反对 回复 2022-06-30
  • 2 回答
  • 0 关注
  • 117 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信