如何在Java中等待輸入?Java掃描器中斷等待輸入
Scanner s = new Scanner() ;
s.nextInt();
//here break without input
我想創建while循環,你可以輸入一些東西5分鐘。 5min後應循環休息。但是當剩下時間時,循環不會再做,但掃描儀仍在等待輸入並進入。
我想退出等待輸入,我並不意味着斷開while循環。
如何在Java中等待輸入?Java掃描器中斷等待輸入
Scanner s = new Scanner() ;
s.nextInt();
//here break without input
我想創建while循環,你可以輸入一些東西5分鐘。 5min後應循環休息。但是當剩下時間時,循環不會再做,但掃描儀仍在等待輸入並進入。
我想退出等待輸入,我並不意味着斷開while循環。
試試這個
import java.util.Scanner;
import java.util.concurrent。*;
公共類掃描{
public static void main(String arg[]) throws Exception{
Callable<Integer> k = new Callable<Integer>(){
@Override
public Integer call() throws Exception {
System.out.println("Enter x :");
return new Scanner(System.in).nextInt();
}
};
Long start= System.currentTimeMillis();
int x=0;
ExecutorService l = Executors.newFixedThreadPool(1); ;
Future<Integer> g;
g= l.submit(k);
while(System.currentTimeMillis()-start<10000&&!g.isDone()){
}
if(g.isDone()){
x=g.get();
}
g.cancel(true);
if(x==0){
System.out.println("Shut Down as no value is enter after 10s" );
} else {
System.out.println("Shut Down as X is entered " + x);
}
//Continuation of your code here....
}
}
我覺得這太難了。 'System.exit(0)'就是我想要的。 – Magnus2005
不,它不退出程序....但是解決該問題的類在最後一次執行後沒有運行代碼....這就是發生了什麼 – Positive
上面所有的類都是當時間終止等待經過或終止循環時,值進入....這是對這個問題的迴應...對不起,如果這是誤導 – Positive
如果我正確理解你的問題,這是你想要什麼:
import java.util.Scanner;
import java.util.concurrent.FutureTask;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
public class Testes {
public static void main(String[] args) throws Exception {
try {
while (true) {
System.out.println("Insert int here:");
Scanner s = new Scanner(System.in);
FutureTask<Integer> task = new FutureTask<>(() -> {
return s.nextInt();
});
Thread thread = new Thread(task);
thread.setDaemon(true);
thread.start();
Integer nextInt = task.get(5, TimeUnit.MINUTES);
System.out.println("Next int read: " + nextInt + "\n----------------");
}
} catch (TimeoutException interruptedException) {
System.out.println("Too slow, i'm going home");
System.exit(0);
}
}
}
http://stackoverflow.com/questions/5853989 /時間限制爲輸入 – ma3stro
@ ma3stro,看起來像重複的好吧 –