Ant*_*ets 3 java calculator multiplication
我正在尝试创建一个基本的计算器.这是我的代码:
public class Calc2 {
public static void main(String[] args) {
String[] calcArray;
calcArray = new String[3];
calcArray[0] = args[0];
calcArray[1] = args[1];
calcArray[2] = args[2];
double result = 0;
if (args.length == 3) {
double firstNumber = Double.parseDouble(args[0]);
int operator = args[1].charAt(0);
double secondNumber = Double.parseDouble(args[2]);
System.out.print(args[0] + " " + args[1] + " " + args[2] + " = ");
switch (operator)
{
case ('+'):
result = firstNumber + secondNumber;
break;
case ('-'):
result = firstNumber - secondNumber;
break;
case ('*'):
result = firstNumber * secondNumber;
break;
case ('/'):
result = firstNumber / secondNumber;
break;
default:
System.out.println("Invalid Operator selected");
}
System.out.printf(" " + result);
}
else
{
System.out.println("Incorrect arguments quantity");
}
}
}
Run Code Online (Sandbox Code Playgroud)
似乎" - ","+","/"运算符正常工作,但是当我尝试在此代码中执行乘法时,例如:
java Calc2 4 * 3
Run Code Online (Sandbox Code Playgroud)
程序显示以下结果:
Incorrect argument quantity
Run Code Online (Sandbox Code Playgroud)
请解释,为什么会发生以及如何解决它.谢谢.
*在命令行上键入的字符被shell解释为通配符,表示当前目录中的所有文件.提供给Java的命令行是这样的
3 Calc2.class Calc2.java 4
Run Code Online (Sandbox Code Playgroud)
加上可能存在的任何其他文件.
在shell中将其转义(或单引号以避免shell解释).
java Calc2 3\* 4
Run Code Online (Sandbox Code Playgroud)
要么
java Calc2 3 '*' 4
Run Code Online (Sandbox Code Playgroud)