Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中循环,直到用户按下enter键_Java - Fatal编程技术网

在java中循环,直到用户按下enter键

在java中循环,直到用户按下enter键,java,Java,如何在java中循环,直到用户按下enter键,然后停止 差不多 while(System.in != ""){ do x; } 请尝试以下操作: while (System.in.available() == 0) { // Do whatever you want } 编辑: 如果要循环直到用户按enter键而不做任何其他操作,则需要以下内容(未测试,但应该足够提示): 扫描仪=新的扫描仪(System.in) while(scanner.nextLine().length()

如何在java中循环,直到用户按下enter键,然后停止

差不多

while(System.in != ""){
  do x;
}
请尝试以下操作:

while (System.in.available() == 0) {
   // Do whatever you want
}
编辑:

如果要循环直到用户按enter键而不做任何其他操作,则需要以下内容(未测试,但应该足够提示):


扫描仪=新的扫描仪(System.in)

while(scanner.nextLine().length()!=0){ ..... }


使用nextLine()而不是next()

为什么需要循环?您是否计划在等待用户按enter键时在后台执行某些操作?如果您只是想让用户等到按下enter键,您只需执行
新建扫描仪(System.in).nextLine()。它将不起作用,此I/O被阻塞。不,我需要重复运行函数,直到按下enter键,然后停止。我猜您必须在另一个线程中执行这些操作,或者使用ActionListener创建Swing应用程序。太棒了。。我将在5分钟内单击“已回答”,它将允许我回答。建议小心!javadoc说这是一个估计值:
返回可以从该输入流中读取(或跳过)的字节数的估计值,而无需通过下一次调用该输入流的方法进行阻塞。
似乎表明这是唯一的方法,当没有按下回车键时,这个估计值永远不会大于零,否则会导致它阻塞。唯一的风险是,当它不应该返回零时,它将返回零,但我高度怀疑这一点(尽管如果这不起作用,这可能是原因)。我有一个模糊的记忆,这在Windows 9x或类似的系统上不太起作用。(最近没有试过。)谢谢你的澄清jrtc@marscom正在尝试循环,直到按enter键为止。你能查一下评论部分的问题吗?
boolean blankLine = true;
loop:
while (true) {
    int available;
    while ((available = System.in.available()) == 0) {
        // Do something
    }
    do {
         switch (System.in.read()) {
             default:
                 blankLine = false;
                 break;
             case '\n':
                 if (blankLine)
                     break loop;
                 blankLine = true;
                 break;
         }
    } while (--available > 0);
}