我有这个与Java输入相关的问题。 我正在解决UVAToolkit中的一些情况,但是线输入需要来自 System.in 的一些问题。根据以下这些代码,一旦按下按键,我怎么能解决问题呢?样本输入/输出显示在下面。
Scanner scanner = new Scanner(System.in);
String line;
while((line = scanner.nextLine()) != null) {
System.out.println(line);
}
System.out.println("done");
示例输入:
1 10
10 100
100 1000
示例输出:
1 10
10 100
100 1000
done
提前致谢。
答案 0 :(得分:1)
要结束输入,您应该首先 ctrl + d ,否则scanner.nextLine()
将不会返回null,而是挂起。
如果您想在输入单词quit
后退出应用程序,则可以执行以下操作:
Scanner scanner = new Scanner(System.in);
String line;
while((line = scanner.nextLine()) != null && !line.equalsIgnoreCase("quit")) {
System.out.println(line);
}
System.out.println("done");
答案 1 :(得分:1)
使用像STOP\n
这样的标记值或关闭流。按 ctrl + z 为Windows(我猜)和 ctrl + d 为Linux关闭流。< / p>
答案 2 :(得分:1)
不要检查空输入,而是检查空字符串。这样,您只需按返回键即可终止。
while(!(line = scanner.nextLine()).equals(""))
答案 3 :(得分:0)
您可以决定使循环结束的特殊字符串,并检查此特殊字符串。例如:
while((line = scanner.nextLine()) != null) {
if (line.equals("quit") break;
System.out.println(line);
}
System.out.println("done");
答案 4 :(得分:0)
尝试检查空行而不是null:
while((line = scanner.nextLine()).isEmpty()) {
System.out.println(line);
}