这个Java代码中的错误是什么?

这个Java代码中的错误是什么?,java,Java,“ans”字符串包含55/42=假设。我正在尝试计算这个字符串的答案,并将其存储在“ans”中。请指出我在代码中的错误 public void equalto() { int i, j, ltemp2; String temp1 = "", temp2 = "", temp2rev = "", temp3 = ""; char temp; double temp11, temp22, temp33; for (i = 0; ans.charAt(i) !=

“ans”字符串包含55/42=假设。我正在尝试计算这个字符串的答案,并将其存储在“ans”中。请指出我在代码中的错误

public void equalto() {
    int i, j, ltemp2;
    String temp1 = "", temp2 = "", temp2rev = "", temp3 = "";
    char temp;
    double temp11, temp22, temp33;
    for (i = 0; ans.charAt(i) != '='; i++) {
        if (ans.charAt(i) == '/') {
            j = i + 1;
            while (ans.charAt(j) != '+' || ans.charAt(j) != '-' || ans.charAt(j) != '*' || ans.charAt(j) != '/' || ans.charAt(j) != '=') {
                temp = ans.charAt(j);
                temp1 = temp1 + temp;
                j++;
            }
            j = i - 1;
            while ((j >= 0) && (ans.charAt(j) != '+' || ans.charAt(j) != '-' || ans.charAt(j) != '*' || ans.charAt(j) != '/')) {
                temp = ans.charAt(j);
                temp2 = temp2 + temp;
                j--;
            }
        }
    }
    ltemp2 = temp2.length();   //For reversing the temp2
    for (j = ltemp2 - 1; j >= 0; j--)
        temp2rev = temp2rev + temp2.charAt(j);
    temp11 = Double.parseDouble(temp1);
    temp22 = Double.parseDouble(temp2rev);   //temp2rev is the actual string. temp2 is in the reversed form.
    temp33 = temp22 / temp11;
    temp3 = String.valueOf(temp33);
    ans = ans.replaceFirst(temp2rev + "/" + temp1 + "=", temp3);
}
将所有| |替换为&&

temp2=temp2+temp;
要直接获得正确的temp2,您可以

temp2 = temp + temp2;

是什么让你认为代码中有错误?您在编译或运行它时是否遇到错误?如果是,它们是什么?如果运行时没有错误,输出是否与您预期的不同?如果是,预期产出是多少?实际产量是多少?当问到为什么你的代码不工作时,准确地解释问题是什么是很重要的。我试着在Ideone上运行它。我有一个运行时错误。当我的输入为55/42=时,错误是线程main java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:6预期输出为55/42的答案
temp2 = temp + temp2;