Android程序崩溃了

时间:2013-11-14 00:34:05

标签: java android calculator

感谢大家的帮助。所有问题都排好了!

3 个答案:

答案 0 :(得分:3)

永远不会使用==来检查Java中字符串的相等性。你必须始终使用

string1.equals(string2)

if (currentString == "+") 

将始终返回false,因此您必须使用

if (currentString.equals("+")) 

答案 1 :(得分:0)

问题是,在检查c是否为数字之前,请执行Integer.toString(c)

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

答案 2 :(得分: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