import java.util.Scanner;
public class ThreadClass {
public static void main(String[] args)
{
System.out.println("Type the following in 5 seconds");
System.out.println("The quick brown fox jumps over the lazy dog");
try {
Scanner sc = new Scanner(System.in);
String str=sc.nextLine();
Thread.sleep(1000);
System.out.println("Your time is over");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
在上面的程序中,我希望我的程序应该要求用户在5秒(或5000毫秒)内输入,并且应该在时间结束后自动关闭并显示一条消息“您的时间结束了”。这段代码的问题在于,每当用户输入内容时,除非按下enter键,否则线程似乎不起作用。我试过在try-catch块外甚至线程下写扫描器代码,但似乎都不起作用。我认为问题出在我的scanner类上,但我无法解决如何以其他方式输入数据。
3条答案
按热度按时间2nbm6dog1#
fnvucqvd2#
如果您的唯一动机是检查用户是否在5秒内插入了输入,那么为什么不通过计算时间来尝试这段代码呢
a0zr77ik3#
只是一个提示:您必须有两个线程-一个用于输入,另一个用于计时器。一旦计时器过期,中断输入线程。例如: