【问题标题】:Set Time Limit on User Input (Scanner) Java设置用户输入(扫描仪)Java 的时间限制
【发布时间】:2017-05-18 03:24:56
【问题描述】:

所以我正在尝试使用 Scanner 类读取用户输入。有没有一种简单的方法可以让它在 10 秒后移动到下一个代码块?谢谢

【问题讨论】:

  • 使用 getCharacters().toString();反而。检查这个:docs.oracle.com/javase/8/javafx/api/javafx/scene/control/…
  • @PetroGordiyevich 你在说什么?
  • 抱歉,回答错了问题。
  • 您需要向我们展示您的代码以及您已经尝试过的内容。
  • @Enstage 我真的不知道该尝试什么。

标签: java input time limit


【解决方案1】:

您可以使用 Timer 和 TimerTask。 TimerTask 将允许您在一定时间后运行任务,在这种情况下您可以使用此任务停止等待用户。

import java.util.Timer;
import java.util.TimerTask;

...

TimerTask task = new TimerTask()
{
    public void run()
    {
        if( str.equals("") )
        {
            System.out.println( "you input nothing. exit..." );
            System.exit( 0 );
        }
    }    
};

...

Timer timer = new Timer();

timer.schedule( task, 10*1000 );

Scanner sc = new Scanner(System.in);
String in = sc.readLine();

timer.cancel();

因此,如果用户在此处 10 秒内没有响应,则计时器将退出读取输入。我从这个初始帖子中窃取/改编了这个回复: Time limit for an input

【讨论】:

    猜你喜欢
    • 2014-09-18
    • 2016-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    • 2016-06-12
    • 1970-01-01
    • 2022-01-07
    相关资源
    最近更新 更多