如何再次读取最后一次输入到Scanner实例?
问题描述:
如何让控制台扫描仪再次使用最后一次输入? 如果我有类似于y=scanner.nextInt();
的东西,我希望我的下一次使用扫描仪使用上一行中的相同输入,我该如何做?如何再次读取最后一次输入到Scanner实例?
答
如何让控制台扫描仪再次使用最后一次输入?
不要。将最后一个输入保存在一个变量或集合中,并以此方式访问它。
答
y=scanner.nextInt();//user inputs 5
y=5;// You can reuse y
x=y;// assign same input to another value
答
我希望我下次使用扫描仪使用上一行相同的输入,我该怎么做?
有没有办法使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()
调用。