有没有办法检查用户是否在Java中的控制台窗口中输入?
如果输入内容,我希望程序打印输入的内容,否则打印出“无输入”。
棘手的部分是我希望程序保持循环并打印出“无输入”,然后当我输入“abc”时,它会立即打印出“abc”。
我尝试使用Scanner来执行此操作:
Scanner s = new Scanner(System.in);
while(1){
if(s.hasNext()) System.out.println(s.next());
else System.out.println("No input");
}
但是当我运行它时,如果我没有输入任何内容,程序就会卡在那里而不打印“无输入”。实际上,从未打印过“无输入”。
答案 0 :(得分:1)
从命令行,我看到在点击“输入按钮”之前没有机会接收输入。 (与“onKeyDown / Up”不同)
但考虑到&接受此限制,一个简单的解决方案是使用Reader.ready():
(..返回)
OrderedDicts
如果确保下一个True
不阻止输入,则read()
。
false