Java 整数扫描仪,用空行停止循环

Java scanner with integers, stop this loop with empty line

我编写了这个简单的循环来从标准输入中收集整数。 我如何修改这个循环,以便它在用户输入一个空行时停止? 现在循环继续进行,忽略空行,它只在我插入一个字母时停止(例如)。

我希望它既可以作为提示,也可以作为标准输入重定向。

提前致谢。

import java.util.Scanner;
public class example{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        boolean auth = true;
        do {
            try{
                int num = in.nextInt();
                in.nextLine();
                System.out.println(num);
            } catch(Exception e){
                System.out.println(e);
                in.nextLine();
                auth = false;
            }
        } while(auth);
        in.close();
    }
}

您可以使用 in.nextLine() 代替 in.nextInt(),然后使用 isEmpty() 函数检查它是否为空,并使用 Integer.parseInt() 将其转换回 int .你可以更有效地做到这一点,但这应该足够了

int num = 0;
String input = in.nextLine();
if(input.isEmpty()){
  auth = false;
}
else{
  num = Integer.parseInt(input);
  System.out.println(num);
}

使用 next() 而不是 nextLine()。 nextLine() 读取输入,包括单词之间的 space。 space 将被读取为空字符串。 如果您使用 next(),它根本不会读取空行。它读取输入直到 space.