Java Android程序崩溃

Java Android程序崩溃,java,android,calculator,Java,Android,Calculator,谢谢大家的帮助。所有问题都解决了 永远不要使用=检查Java中字符串的相等性。你必须始终使用 string1.equals(string2) 线路 if (currentString == "+") 将始终返回false,因此必须使用 if (currentString.equals("+")) 永远不要使用==检查Java中字符串的相等性。你必须始终使用 string1.equals(string2) 线路 if (currentString == "+") 将始终返回fals

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

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

string1.equals(string2)
线路

if (currentString == "+") 
将始终返回
false
,因此必须使用

if (currentString.equals("+")) 

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

string1.equals(string2)
线路

if (currentString == "+") 
将始终返回
false
,因此必须使用

if (currentString.equals("+")) 

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

string1.equals(string2)
线路

if (currentString == "+") 
将始终返回
false
,因此必须使用

if (currentString.equals("+")) 

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

string1.equals(string2)
线路

if (currentString == "+") 
将始终返回
false
,因此必须使用

if (currentString.equals("+")) 

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


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

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


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

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


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

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


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

我认为问题在于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

我认为问题在于您的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

我认为问题在于您的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

我认为问题在于您的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

检查字符串时不使用.equals()的所有其他位置也是如此。检查字符串时不使用.equals()的所有其他位置也是如此。检查字符串时不使用.equals()的所有其他位置也是如此。检查字符串时不使用.equals()的所有其他位置也是如此检查字符串时。下次发布较少的代码。在发布之前尝试搜索问题。这是重复的。下次发布较少的代码。请在发布之前尝试搜索问题。这是重复的。下次发布较少的代码。请在发布之前尝试搜索问题。这是重复的。下次发布较少的代码。请在发布之前尝试搜索问题。这是一个重复。c是一个以int开头的整数(它是for循环计数器),所以这不应该是问题。c是一个以int开头的整数(它是for循环计数器),所以这不应该是问题。c是一个以int开头的整数(它是for循环计数器),所以这不应该是问题。c是一个以int开头的整数(它是for循环计数器),所以这不应该是个问题。