java扫描仪while循环不会停止

标签 java while-loop java.util.scanner

我是一年级计算机科学学生,我正在做一项作业,但我遇到了这个不会停止的 while 循环...

import java.io.*;
import java.util.Scanner;

class Ass1{
public static void main(String[] args){
    int i=0;

    try{
        File myfile = new File ("./ages.txt");
        Scanner scanner = new Scanner(myfile);

        while(scanner.hasNext()){
            i++;
        }
        System.out.println("ages.txt contains " + i + " lines");
        scanner.close();
    }catch(IOException e){}
}
}

年龄.txt 文件如下所示(它们应该全部位于单独的行中,但不知何故我只能在此处将它们显示在一行中:( )

200 201 第202章 203 205 205 207 208 210 213 214 217 218 219 219 221 225 226 227 227 第231章 第232章 238 238 240 309 313 314

我试图从文本文件中读取所有行,并在最后打印它包含的行数。

预先感谢您的帮助。

最佳答案

您需要通过调用 scanner.next(); 来升级扫描仪

如果您要计算行数,最好分别使用 scanner.hasNextLine()scanner.nextLine()

按照您的编写方式,scanner.hastNext() 将始终评估为 true,因为扫描仪从未真正离开其初始位置,因此总会有一个 hasNext()

关于java扫描仪while循环不会停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19437356/

相关文章:

java - 生成唯一的引用号

c - 如何在 while 循环内重置 do while 循环?

java - 使用扫描仪接受字符串输入并存储在字符串数组中

php - 从数组保存数据而不提交任何表单php

java - 如何将嵌套循环插入到2个while循环中

java - 解析错误;我已经尝试过,但无法弄清楚出了什么问题?

Java Scanner 不等待用户输入

java - 从 C++ 调用 java 代码 : exception java. lang.NoSuchMethodError

当窗口调整大小 3D 对象时,Java OpenGL 不保持大小

java - 使用 pageRequest 测试 spring 存储库