我使用Java已经有好几年了,而且我不太确定验证命令行输入的最佳做法是什么。
我的代码目前的结构如下:
while (true) {
try { ... break; } catch(...) {...}
}
我觉得这是不好的做法,因为它类似于在某种程度上使用goto语句。
有更好的方法来验证用户输入吗?
只是使用布尔值作为首选方法?
编辑:
更具体地说,验证stdin(扫描仪)的用户输入。
达到以下程度:
while(true){
try {
userInput = Integer.parseInt(stdin.next());
break;
} catch (InputMismatchException e) {
...
}
}
答案 0 :(得分:1)
虽然您所拥有的内容是可以接受的,但如果他们输入的内容与您的验证不符,我更愿意至少输出一条消息。
更像这样:
int userInput;
System.out.println("Please enter an integer:");
while(true){
try {
userInput = Integer.parseInt(stdin.next());
break;
} catch (InputMismatchException e) {
System.out.println("Please enter a valid integer:");
}
}