2016-02-14 58 views

回答

1

如何让控制台扫描仪再次使用最后一次输入?

不要。将最后一个输入保存在一个变量或集合中,并以此方式访问它。

1
y=scanner.nextInt();//user inputs 5 
    y=5;// You can reuse y 
    x=y;// assign same input to another value 
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()调用。

相关问题