pro*_*spk 2 java java.util.scanner
import java.util.Scanner;
class newClass {
public static void main(String args[]) {
Scanner s = new Scanner(System.in);
while (s.hasNext()) {
System.out.println(s.next());
}
s.close();
}
}
Run Code Online (Sandbox Code Playgroud)
该程序不会返回提示(我已通过终端运行它).这是为什么?我该如何纠正?
该程序不会返回提示(我已通过终端运行它).这是为什么?
因为s.hasNext()将阻塞直到进一步输入可用,并且只有在遇到流结束时才返回false.
来自文档:
如果此扫描器的输入中有另一个标记,则返回true.在等待输入扫描时,此方法可能会阻塞.
在unix系统上,您可以通过键入Ctrl+ 来结束流,D这会正确地将控制权返回给提示符,(或者通过键入Ctrl+来终止整个程序C).
我该如何纠正?
你也可以
System.in.close()从另一个线程编程.