hasNext() 的问题

问题描述 投票:0回答:1

我对 Scanner 类的 hasNext() 函数有 2 个问题。

我的循环应该有 4 次迭代,但我的循环是无限的。

这是代码:

import java.util.Scanner;

public class main {
    public static void main(String[] args) {
        String t = "Munich     London      Paris   New_York";
        Scanner sc = new Scanner(t);

        while (sc.hasNext()) {
            System.out.println("GOOD");
        }
    }
}

以下是来自 Oracle 官方文档的 hasNext() 函数的定义:

如果此扫描器的输入中有另一个令牌,则返回 true。此方法可能会在等待输入扫描时阻塞。扫描仪不会前进超过任何输入。

那么,他们的意思是:“扫描仪不会前进超过任何输入。”

java java.util.scanner
1个回答
0
投票

您需要致电

next()
。另外,请确保使用
\s+
分隔符。

请注意,类名应以大写字母开头。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        String t = "Munich     London      Paris   New_York";
        Scanner sc = new Scanner(t).useDelimiter("\\s+");

        while (sc.hasNext()) {
            System.out.println(sc.next());
        }

        sc.close();
    }
}

结果:

Munich
London
Paris
New_York
© www.soinside.com 2019 - 2024. All rights reserved.