我正在编写如下代码:
public class SampleIntReader{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
int value = 0;
while(s.hasNextInt()){
value = s.nextInt();
System.out.println(value);
}
}
}
我希望代码停止阅读,就像BufferedReader
一样,终止于eof
或-1
或null
我们不必明确检查终止条件。但是对于Scanner
类,我们只有hasNextInt
和nextInt
方法。在while
循环中编写终止代码看起来很丑陋。
是否有一种使用Scanner
类的优雅方式。
此外,Scanner类在Windows和Linux环境中的行为有所不同。
答案 0 :(得分:0)
使用带有某种退出键的布尔值:
public class SampleIntReader{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
int value = 0;
boolean done=false;
while(!done){
value = s.nextInt();
if(value==-1){done=true;}//this exits the loop
System.out.println(value+" Type -1 to stop");
}
}
}