[英]Non-terminating Java program
我有这个与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
提前致谢。
要结束输入,您应该先输入ctrl + d ,否则,scanner.nextLine 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");
使用STOP\\n
类的哨兵值或关闭流。 对于Windows(我猜),请按ctrl + z ;对于Linux,请按ctrl + d ,以关闭流。
不要检查空输入,而是检查一个空字符串。 这样,您只需按回车键就可以终止。
while(!(line = scanner.nextLine()).equals(""))
您可以决定一个特殊的字符串来结束循环,然后检查这个特殊的字符串。 例如:
while((line = scanner.nextLine()) != null) {
if (line.equals("quit") break;
System.out.println(line);
}
System.out.println("done");
尝试检查空行而不是null:
while((line = scanner.nextLine()).isEmpty()) {
System.out.println(line);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.