java - 如何结束扫描仪的阅读

标签 java

我想阅读 UVA Online Judge 问题中的所有测试用例。测试用例由空行分隔。例子: 11 20 1 2 3 6 8 12 13 13 15 16 17 号 18 19 20 20 21 25 26 30 31

12 20 1 2 3 6 8 12 13 13 15 16 17 号 18 19 20 20 21 25 26 30 31

17 20 1 2 3 6 8 12 13 13 15 16 17 号 18 19 20 20 21 25 26 30 31

while(sc.hasNextLine())
    {
        numberOfYears = sc.nextInt();
        numberOfPopes = sc.nextInt();

        years = new ArrayList<Integer>();

        for(int i = 0; i < numberOfPopes; i++)
        {
           years.add(sc.nextInt());
        }

        p = new ProblemPope(numberOfYears, numberOfPopes, years);

    }

我知道,扫描仪正在等待另一行或需要 CTRL+Z 或 CTRL+D。我只是想知道在阅读完所有测试用例后是否有办法结束它。 有没有办法通过扫描仪来做到这一点?

最佳答案

我认为您正在寻找这个:

while (true) {

    if(!sc.hasNext())
        break;

    ...
}

或者简单地说:

while(sc.hasNext()) {
    ...
}

关于java - 如何结束扫描仪的阅读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39592643/

相关文章:

java - 多态地推导派生类型

java - if else 语句错误

java - 纯Java中两个ArrayLists的内部连接

java - 如何向不同的电子邮件 ID 批量发送电子邮件

java - HttpServletRequest.getRequestURL() 是否可欺骗?

java - 尝试调用另一个应用程序的 Activity

java - 我的 Android 应用程序意外关闭。 Eclipse 说无法连接到本地主机

java - Play 2.5 : Form validation - on error, 表单值为 "Optional.empty"

java - 从 List<String> Java 解析

java - 我的 GUI 没有完全显示