我有一个程序化的Java程序,有多个段,我想手动执行(使用“按Enter键继续”)。Java等待输入按(不要执行多个按键)
现在我一直在尝试使用System.in.read()或Scanner,但是如果我要进行多次输入,它会自动执行下一个段。
我该如何规范这种行为?
我有一个程序化的Java程序,有多个段,我想手动执行(使用“按Enter键继续”)。Java等待输入按(不要执行多个按键)
现在我一直在尝试使用System.in.read()或Scanner,但是如果我要进行多次输入,它会自动执行下一个段。
我该如何规范这种行为?
我建议使用BufferedReader
而不是System.in.read()
。它也有一个内置的冲洗机制。
在等待下一个输入之前,您必须从InputStream中删除所有内容。
System.in.available()
返回当前流中的字节数。
System.in.read(new byte[System.in.available()]);
这会清除流,所以现在用户必须再次输入内容。
注意:System.in.skip()
由于某种原因不起作用。
可能的重复:http://stackoverflow.com/questions/18281543/java-using-scanner-enter-key-pressed?rq = 1 –
您可以在每个段完成后清空输入缓冲区吗?我没有尝试过,但是做了类似[伪代码] System.in.read([in.available()length]的byte数组)。以“冲洗”一切。 –