Java: Scanner input 为空

问题遇到的现象和发生背景

Age:
Exception in thread "main" java.lang.RuntimeException: java.lang.NumberFormatException: For input string: ""
at HRAssistant.createNewApplication(HRAssistant.java:145)

用代码块功能插入代码,请勿粘贴截图

System.out.print("Age: ");
int age= Integer.parseInt(keyboard.nextLine());
String ageString=age+"";
while (!(age > 18 && age < 100)){
System.out.print("Ooops! A valid age between 18 and 100 must be provided: ");
age= Integer.parseInt(keyboard.nextLine());
}

我的解答思路和尝试过的方法

System.out.print("Age: ");
int age= Integer.parseInt(keyboard.nextLine());
String ageString=age+"";
while (!(age > 18 && age < 100)||ageString.isEmpty()){
System.out.print("Ooops! A valid age between 18 and 100 must be provided: ");
age= Integer.parseInt(keyboard.nextLine());
}

我想要达到的结果

希望输入是empty时下一行能正常运行

int age= Integer.parseInt(keyboard.nextLine());
这里不要写复合语句,拆开,先把in的内容赋值给string类型的变量,判断里面是不是空
然后使用tryparse而不是parse转换成int,避免输入的字符串无法转换成int
或者你在外面包个try,catch

int age;
while(true){
try
{
age= Integer.parseInt(keyboard.nextLine());
break;
}
catch(Exception e){
System.out.println("请输入正确数字”);
}
}