6
這個問題很簡單,但我錯過了一些非常基本的東西,無法捕捉它。請幫忙。 我正在寫一個簡單的計算器程序在命令行上使用。源代碼如下。 問題是,當我使用計算器作爲在Java程序的命令行中使用*
>java SwitchCalc 12 * 5
它拋出爲輸入串中的「java.lang.NumberFormatException」:在語句「002.java」於argS [2]第二解析INT:
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);
}
}
你可以嘗試打印所有的參數,然後再執行任何操作? –
這不是用Java做的 - 它是你的shell進行通配符擴展。我猜你有兩個或多個文件,其中之一叫做'002.java',在你運行這個代碼的目錄中。 –
我試過只是現在用以下代碼:'for(int i = 0; i