0

感谢大家的帮助。所有问题都解决了!

4

3 回答 3

3

从来没有使用==过检查 Java 中字符串的相等性。您必须始终使用

string1.equals(string2)

线

if (currentString == "+") 

将永远返回false,所以你必须使用

if (currentString.equals("+")) 
于 2013-11-14T00:39:53.777 回答
0

问题是您 Integer.toString(c)在检查 c 是否为数字之前要做。

另外,请注意,您不应该将字符串与 == 进行比较,您必须使用 .equals(),否则您会得到意想不到的结果。

于 2013-11-14T00:40:27.890 回答
0

我认为问题在于您的 IF 在此片段中返回“false”:

    //Check if the element is a sign
    if(currentElement == "+" || currentElement == "-" || currentElement == "*" || currentElement == "/")
    {
        Log.i("INFORMATION", "Sign found!");
        currentSign = currentElement; //Save into temporary storage to be used next loop
    }
    else // Element is a number
    {
        currentNumber = Double.parseDouble( currentElement ); //Convert number to integer
    }

因此,当您尝试使用 currentElement="+" 执行 Double.parseDouble(currentElement) 时会出现致命错误。

我会使用字符串比较而不是“==”,如下所示:

if("+".equals(currentElement) || "-".equals(currentElement) ... etc
于 2013-11-14T00:43:03.770 回答