【发布时间】:2021-06-19 11:45:12
【问题描述】:
我有这个代码:
public class SimpleTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter: ");
String s = "";
while (scanner.hasNext()) {
s += scanner.next();
System.out.println(s);
}
System.out.println("Result: " + s);
}
}
我的代码显示:
虽然Result: 行永远不会被打印出来。
我该如何解决? (不使用scanner.nextLine、.split() 或不同的while 条件,如whle (!input.equals("quit"))
【问题讨论】:
-
我认为你不能使用
System.in而不做一些非常奇怪的事情,比如关闭System.in流(我认为这会非常糟糕)。来自系统的数据是用户输入的数据,通常你告诉他们输入五件事(或任何数字),然后收集那么多并继续而不检查“更多”。 -
P.S.
nextLine()正是我在这种情况下的建议。为什么不想使用它? -
您可以在最后一个数字之后输入 EOF 来表示“这里没有更多数据”。 (在 linux 上是 Ctrl+D,我相信在 Windows 上是 Ctrl+Z)
标签: java