在扫描仪上输入数字

input a number on scanner

我正在尝试创建一个简单的 Java 程序,用户应该在其中输入他的年龄。例如,如果用户输入的是字母而不是数字,他将收到一条消息。
我想做的是,除了消息之外,还应该要求用户输入另一个输入,并且将再次检查该输入以查看它是否是数字。
谁能知道我怎样才能做到这一点?

System.out.println("2 - Set The Age");
Scanner b = new Scanner(System.in);

if (b.hasNextDouble()) {
    double lage = b.nextDouble();
    setAge(lage);
    addEmployeeMenu();
} else {
    System.out.println("You should type only numbers!");
}

你可以像这样使用 while 循环

Scanner b = new Scanner(System.in);
double lage;

while (true) {
    System.out.println("2 - Set The Age");
    if(b.hasNextDouble()){
        lage = b.nextDouble();
        break;
    }else b.nextLine();
}

关键是,获取你的号码并在 while 循环中检查它,只要输入不正确就重复

你也可以使用NumberFormatException:

while (true) {
            System.out.println("Set the age: ");
            String input = sc.next();
            try {
                int x = Integer.parseInt(input);
                System.out.println("Your input '" + x + "' is a integer");
                break;
            } catch (NumberFormatException nFE) {
                System.out.println("Not an Integer");
            }
        }