【发布时间】:2009-06-12 23:58:18
【问题描述】:
您好,我被困在一个简单的 Java 练习上,希望有人能提供帮助。
对不起,如果这真的很简单,我是 java 新手。
我遇到的问题:如果用户输入“帮助”以外的字符串,例如“foo”,那么我会收到以下错误:
Exception in thread "main" java.lang.NumberFormatException: For input string: "foo"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:447)
at java.lang.Integer.parseInt(Integer.java:497)
at NumberGuess.main(NumberGuess.java:10)
我认为正在发生的事情:“foo”没有被“else”捕获,因为 args[0] 是一个对象引用,而不是真正的字符串。
我想知道的:如何捕捉除“帮助”或数字“1”到“5”以外的所有内容?
这里是代码...
public class NumberGuess {
public static void main(String args[]){
int r;
int g;
if ((args[0].compareTo("help")) == 0){
System.out.println("Enter a number between 1-5 to play.");
} else if (Integer.parseInt(args[0]) > 0 && Integer.parseInt(args[0]) <= 5){
r = ((int)(Math.random()));
g = Integer.parseInt(args[0]);
if (r == g){
System.out.println("YOU WON!");
} else {
System.out.println("Wrong: number was " + r);
}
} else {
System.out.println("Something went horribly wrong.");
}}}
【问题讨论】:
-
仅供参考,对于更复杂的参数解析,我建议使用 commons-cli。
标签: java command-line