gpt4 book ai didi

java - 为什么行 keyboard = new Scanner(keyboard.nextLine());防止程序挂起?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:55:34 26 4
gpt4 key购买 nike

我一直在尝试弄清楚如何使用 Scanner 类一次输入多个标记。我找到了一些可以完美运行的代码。我知道 Scanner.hasNext 方法可以无限期地阻塞。为什么此代码中的行 keyboard = new Scanner(keyboard.nextLine()); 阻止它执行此操作?

    Scanner keyboard = new Scanner(System.in);
LinkedList<String> ll = new LinkedList<String>();

System.out.println("Please enter your full name: ");
keyboard = new Scanner(keyboard.nextLine());

while(keyboard.hasNext())
{
System.out.println("tag ");
ll.add(keyboard.next());

}

System.out.println(ll);

谢谢!

最佳答案

keyboard 将是一个 Scanner,它从输入的第一行读取标记。

当您使用 Scanner(String str) 构造函数时,生成的扫描器将使用 str 作为输入。

如果您清楚这一点,您可能只需要了解终端 IO 是行缓冲的。这意味着在您按下 return 之前,扫描仪将无法读取任何内容。

关于java - 为什么行 keyboard = new Scanner(keyboard.nextLine());防止程序挂起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7431225/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com