問題は簡単ですが、ここでは非常に基本的なものがいくつか見逃されています。助けてください。 私はコマンドラインで作業する簡単な電卓プログラムを書いています。ソースコードを以下に示します。私はJavaプログラムのコマンドラインで*を使用する
>java SwitchCalc 12 * 5
として計算機を使用する場合 は、問題はそれが入力された文字列のための「java.lang.NumberFormatException」をスローされます。引数から2番目のintを解析文で「002.java」[2]:
int value2 = Integer.parseInt(args[2])
その後、私は次のように試してみました。
>java SwitchCalc 12 "*" 5
12 * 5 = 60
何が欠けていますか?
/*
User will input the expression from command-line in the form:
>java SwitchCalc value1 op value2
where,
value1, and value2 are integer values
op is an operator in +, -, *, /, %
Program will evaluate the expression and will print the result. For eg.
>java SwitchCalc 13 % 5
3
*/
class SwitchCalc{
public static void main(String [] args){
int value1 = Integer.parseInt(args[0]),
value2 = Integer.parseInt(args[2]),
result = 0;
switch(args[1]){
case "+":
result = value1 + value2;
break;
case "-":
result = value1 - value2;
break;
case "*":
result = value1 * value2;
break;
case "/":
result = value1/value2;
break;
case "%":
result = value1 % value2;
break;
default:
System.out.printf("ERROR: Illegal operator %s.", args[1]);
break;
}
System.out.printf("%d %s %d = %d", value1, args[1], value2, result);
//System.out.println(value1 + " " + args[1] + " " + value2 + " = " + result);
}
}
何かを実行する前に、すべてのargsを印刷してみることができますか? –
これはJavaでは関係ありません。あなたのシェルはワイルドカード拡張を行っています。私はあなたがこのコードを実行しているディレクトリに '002.java'と呼ばれるファイルが2つ以上あると思います。 –
次のコードを試しました: 'for(int i = 0; i