java - 等待输入字符 10 秒,还是在按下某个键时提前继续?

标签 java input console delay

我有一个 Java 客户端-服务器应用程序,客户端通过控制台从玩家获取输入。它应该给玩家 10 秒的时间来按下某个键,如果玩家按下按键较早,则可以提前进行。如果没有输入,它也会结束回合。 我用谷歌搜索了这个问题,出现了完全不同的事情,其中​​大多数似乎使小任务变得过于复杂。我也无法选择最适合这个的,因为我以前没有做过类似的事情。 那么,我应该:

  • 使用两个单独的线程,
  • 使用wait()或notify(),
  • 使用 sleep(),
  • 检查时间戳或其他内容?

我更喜欢使用具有两个退出条件的 while 循环。 目前我正在使用这样的扫描仪读取字符输入:

 scanner.next().charAt(0);

最佳答案

目前我是这样做的,但仍然欢迎建议:)我想知道是否有可能不让用户按“回车”而只读取一个符号。使用read()而不是readline(),它仍然等待按下回车键。

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Time left to bet:  ");
    for (i = 10; i > 0 && !gotInput; i--) {
        System.out.print(i+"...");
        Thread.sleep(1000);
        gotInput = reader.ready();
    }
    if (!gotInput) {
        System.out.print(0);
    }
    System.out.println();

关于java - 等待输入字符 10 秒,还是在按下某个键时提前继续?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49598784/

相关文章:

java - SSLHandshakeException : ValidatorException: PKIX path building failed: sun. security.provider.certpath.SunCertPathBuilderException:

java - 如何自动化测试不同版本的jar?

ios - Xcode 控制台打印奇怪的错误

javascript - 从具有相同类的多个输入标签中获取 html

java - 如何从控制台读取输入直到输入字符

php - CakePHP 大师 : Console cake command not finding -app path correctly?

java - 在通用上下文中使用 getActualTypeArguments

JavaFX 8 为小部件获取有效的 CSS

javascript - react 键盘和输入之间的原生边距

javascript - HTML 表单的日期/时间输入