gpt4 book ai didi

Java Scanner 不会 "finish"读取输入

转载 作者:行者123 更新时间:2023-11-30 11:46:22 28 4
gpt4 key购买 nike

我一直在使用 java 的 Scanner 类时遇到问题。我可以让它很好地读取我的输入,但问题是当我想要输出一些东西时。给定多行输入,我想在完全读取所有输入后只打印一行。这是我用来读取输入的代码:

    public static void main(String[] args){
Scanner scanner = new Scanner(System.in); //scanner reads block of input
while(scanner.hasNextLine()){
//body of loop goes here
String s = scanner.nextLine();
Scanner ls = new Scanner(s); //scanner to parse a line of input
while(ls.hasNext()){
//body of nested loop goes here
ls.next();
}
}
System.out.println("Fin");
}

即使已读取所有输入行,程序也不会到达 System.out.println 消息。 (请注意,该消息不能发送到其他任何地方,否则它会在循环运行时输出多次)。我该如何解决?任何帮助将不胜感激。

最佳答案

正如我在您使用的外部 while 循环中看到的那样

scanner.hasNextLine();

方法。如果必须等待输入,此方法将被阻止。你还有

Scanner scanner = new Scanner(System.in);

声明。所以 system.in 将一直等待输入,因此 hasNextLine() 方法必须等待输入。这就是控件卡在循环中无法继续进行的原因。

要修复它,您可以先将输入存储在一个字符串变量中,然后在其上调用扫描器构造函数。

关于Java Scanner 不会 "finish"读取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9816965/

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