开发者社区> 问答> 正文

.hasNext()上的无限循环

我正在尝试读取文件并提取最大的数字。我想读文件直到最后,但是hasNext()一直给我真实的东西。当我尝试将其更改为hasNextInt()时,即使我的字符为整数,它也永远不会进入。如何摆脱循环并正确读取我的整数?帮助将不胜感激。

int maxScore=0;
        int score = 0;
        Scanner scan = new Scanner("PacManHighScore");
        while(scan.hasNext()) {
            if(scan.hasNextInt()) {
                score = scan.nextInt();
            }
            System.out.println(score);
            if(score > maxScore) {
                maxScore = score;
            }
        }
        scan.close();

问题来源:Stack Overflow

展开
收起
montos 2020-03-21 21:08:07 1109 0
1 条回答
写回答
取消 提交回答
  • 您忘记了跳过非整数值,因此陷入了无限循环。

    试试下面的代码。

    int maxScore=0;
    int score = 0;
    Scanner scan = new Scanner("PacManHighScore");
    while(scan.hasNext()) {
        if(scan.hasNextInt()) {
            score = scan.nextInt();
        }else{
            scan.next();
        }
        System.out.println(score);
        if(score > maxScore) {
            maxScore = score;
        }
    }
    scan.close();
    

    回答来源:Stack Overflow

    2020-03-21 21:08:43
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载