检查用户是否在控制台窗口中键入内容

时间:2015-03-06 12:54:12

标签: java

有没有办法检查用户是否在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");
}

但是当我运行它时,如果我没有输入任何内容,程序就会卡在那里而不打印“无输入”。实际上,从未打印过“无输入”。

1 个答案:

答案 0 :(得分:1)

从命令行,我看到在点击“输入按钮”之前没有机会接收输入。 (与“onKeyDown / Up”不同)

但考虑到&接受此限制,一个简单的解决方案是使用Reader.ready()

  

(..返回)OrderedDicts如果确保下一个True不阻止输入,则read()

false