我有一個程序化的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數組)。以「沖洗」一切。 –