检测到用户输入时如何停止计时器

时间:2015-01-28 16:11:06

标签: java timer

我实现了一个名为NumberPrinter的类,它使用Timer类重复打印出一个数字(从命令行参数中读取)。它将从interval开始每隔startTime秒打印一次此号码。

需要添加的功能是当用户输入' q'检测到,计时器和整个程序应该终止。我被困在这里因为我不知道如何检测用户输入。

以下是我目前的代码。

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

public class NumberPrinter extends TimerTask {

  private double numberToPrint;

  NumberPrinter(double numberToPrint) {
    this.numberToPrint = numberToPrint;
  }

  public void run() {
    System.out.println(numberToPrint);
  }

  public static void main(String[] args) {
    // Arguments
    double numberToPrint = Double.parseDouble(args[0]);
    long startTime = Long.parseLong(args[1]);
    long interval = Long.parseLong(args[2]);

    // Timer
    Timer timer = new Timer();
    NumberPrinter number = new NumberPrinter(numberToPrint);
    timer.schedule(number, startTime, interval);

    // A scanner to keep track of the input from user
    Scanner sc = new Scanner(System.in);
    // Not sure about the following lines :(
    if (sc.nextLine() == "q") {
      System.out.println("asd");
      timer.cancel();
      sc.close();
    }
  }
}

任何人都可以帮我解决这个问题吗? :)

0 个答案:

没有答案