如何再次读取Scanner实例的最后一个输入?

时间:2016-02-14 04:08:20

标签: java java.util.scanner

如何让控制台扫描程序再次使用上次输入?     如果我有y=scanner.nextInt();之类的话 我希望我下次使用扫描仪时使用前一行的相同输入,我该怎么做?

3 个答案:

答案 0 :(得分:1)

  

如何让控制台扫描程序再次使用上次输入?

唐'吨。将最后一个输入保存在变量或集合中,然后以这种方式访问​​它。

答案 1 :(得分:1)

    y=scanner.nextInt();//user inputs 5
     y=5;// You can reuse y
     x=y;// assign same input to another value

答案 2 :(得分:1)

  

我希望我下次使用扫描仪时使用上一行的相同输入,我该怎么做?

无法让Scanner做到这一点。 Scanner API不提供任何方法来回溯到上一次成功读取操作之前的某个点。并试图通过"寻求"由于扫描仪的内部缓冲,底层流不太可能正常工作。

我能想到的最好的解决方案是:

Scanner scanner = new Scanner( ... )
while (scanner.hasNext()) {
    String line = scanner.nextLine();
    Scanner lineScanner = new Scanner(line);
    // read tokens from lineScanner
    // to "reset" to the start of the line, discard lineScanner
    // and create a new one.
}

另一种方法可能只是保存您扫描的内容,并在更高级别进行重置。但是,如果您需要以不同的方式重新扫描,那么这不起作用;例如使用nextInt()来电代替next()来电。