在java中循环,直到用户按下enter键
如何在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()
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);
}