乘法在简单的java计算器中不起作用

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)

请解释,为什么会发生以及如何解决它.谢谢.

rge*_*man 7

*在命令行上键入的字符被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)