Java-我的 addMinus 方法中的数字不是 adding/subtracting

Java-Numbers aren't adding/subtracting in my addMinus method

我目前正在创建一个计算器,我正在从 String 中读取代码并将操作数和运算符添加到 ArrayList 中。由于某种原因,系统没有执行我的 addMinus 方法中的操作。似乎没有执行 if-then 语句。我不明白这是为什么。请协助。

    int counter = 0; //placeholder for the operators
    //this searches to see if there is an operator
    for (int i = 0; i < input.length(); i++) {
        char c = input.charAt(i);
        if (c == '+' || c == '-') {
            operator[counter] = Character.toString(c);
            counter++;
        }
    }
    addMinus(delimiter, operator, counter);
    return null;
}


//Multiplies the numbers
public static String[] multDiv(String[] equation) {
    for (int y = 0; y < equation.length; y++) {//iterates through elements in delimiter
        for (int i = 0; i < equation[y].length(); i++) {//iterates through chars in element string
            if (equation[y].charAt(i) == '*') {
                String[] nums = equation[y].split("\*");
                equation[y] = String.valueOf(Double.parseDouble(nums[0]) * Double.parseDouble(nums[1]));
            } else if (equation[y].charAt(i) == '/') {
                String[] nums = equation[y].split("/");
                equation[y] = String.valueOf(Double.parseDouble(nums[0]) / Double.parseDouble(nums[1]));
            }
        }
    }
    return equation;
}


/////*****SEARCHES FOR ADDS OR SUBTRACTS THE NUMBERS *****////
public static String[] addMinus(String[] numbers, String[] symbols, int counter) {
    String[] equation = arrayMaker(numbers, symbols, counter);
    Double answ = Double.parseDouble(numbers[0]);
    int x = 0;

    for (int i = 0; i < symbols.length; i++) {
        if (symbols[i] == "- ") {
            answ = -Double.parseDouble(equation[x + 1]);
            System.out.println(" " + answ);
        } else if (symbols[i] == "+ ") {
            System.out.println(symbols[0]);
            answ = +Double.parseDouble(numbers[x + 1]);
            System.out.println(" " + answ);
        }
        x = +2;
    }
    System.out.println(answ);
    return null;
}

注意这行代码:

if (symbols[i] == "- ")

您在这里比较的是引用,而不是值。您需要使用 equals() 方法。与 else if 相同的情况。引号之间有额外的 space 怎么办?