java hasNextInt问题

时间:2018-02-17 08:16:51

标签: java java.util.scanner

我正在编写如下代码:

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-1null我们不必明确检查终止条件。但是对于Scanner类,我们只有hasNextIntnextInt方法。在while循环中编写终止代码看起来很丑陋。 是否有一种使用Scanner类的优雅方式。

此外,Scanner类在Windows和Linux环境中的行为有所不同。

1 个答案:

答案 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");
    }
}
}