Java Scanner打破等待输入

时间:2016-08-15 13:15:54

标签: java java.util.scanner break

如何在Java中等待输入?

        Scanner s = new Scanner() ;
        s.nextInt();
        //here break without input

我想创建while循环,你可以输入5分钟的东西。 5分钟后循环应该休息。但是当剩下时间时,循环不会再做,但扫描​​仪仍在等待输入并进入。

我想退出等待输入,我不是说打破循环。

1 个答案:

答案 0 :(得分:0)

如果我正确理解你的问题,这就是你想要的:

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);
        }
    }
}
相关问题