验证命令行参数用户输入
Validating Command Line Arguments User Input
自从我使用 Java 以来已经有好几年了,我不太确定验证命令行输入的最佳做法是什么。
我的代码目前的结构如下:
while (true) {
try { ... break; } catch(...) {...}
}
我觉得这是不好的做法,因为它在某种程度上类似于使用 goto 语句。
是否有更好的方法来验证用户输入?
简单地使用布尔值是首选方法吗?
编辑:
更具体地说,验证来自标准输入(扫描仪)的用户输入。
某种程度上:
while(true){
try {
userInput = Integer.parseInt(stdin.next());
break;
} catch (InputMismatchException e) {
...
}
}
虽然您的内容是可以接受的,但如果他们输入的内容与您的验证不符,我更愿意至少输出一条消息。
更像这样的东西:
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:");
}
}
自从我使用 Java 以来已经有好几年了,我不太确定验证命令行输入的最佳做法是什么。
我的代码目前的结构如下:
while (true) {
try { ... break; } catch(...) {...}
}
我觉得这是不好的做法,因为它在某种程度上类似于使用 goto 语句。
是否有更好的方法来验证用户输入?
简单地使用布尔值是首选方法吗?
编辑:
更具体地说,验证来自标准输入(扫描仪)的用户输入。
某种程度上:
while(true){
try {
userInput = Integer.parseInt(stdin.next());
break;
} catch (InputMismatchException e) {
...
}
}
虽然您的内容是可以接受的,但如果他们输入的内容与您的验证不符,我更愿意至少输出一条消息。
更像这样的东西:
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:");
}
}