Android If else条件错误

问题描述

| 我不知道为什么以下条件即使总是为TRUE也会始终返回false。即时比较的结果是用户在字符串变量\'classNameGlobal \'中输入文本,而DB查询的第二个结果是从表的列中产生了字符串值。每当我运行控制开关时,否则将不运行if部分-.- 请看一看。
String result[];
result = new String[cursor.getCount() - 1];
int i = 0;
while (cursor.movetoNext()) {
        result[i] = cursor.getString(cursor.getColumnIndex(\"name\"));
        i++;
    }

 classNameGlobal = className.getText().toString().toupperCase().trim();
注意:如果上述代码是用onclick方法编写的,则只包含该结果数组声明。此外,我使用相同的方法将字符串存储在数据库中,即im将其转换为大写字母,然后修剪所有多余的空格!即使即时通讯转储查询用户输入的字符串的结果。两者都是一样的。现在,为什么im始终保持此else部分运行,而不运行if部分-.- im用于比较数据库查询用户输入的字符串的结果的方法是:
 for (int b = 0; b < result.length; b++) {

                if (classNameGlobal == result[b]) {
                    Log.d(TAG,\"Inside if condition Now : \" + result[b] + \" \\t\" + classNameGlobal);

                    db.execsql(\"drop table if exists \" + classNameGlobal);

                    /* Deleting Code File */
                    this.deleteFile(classNameGlobal + \".txt\");

                    Toast.makeText(
                            this,classNameGlobal + \" Database Dropped Successfully \",Toast.LENGTH_SHORT).show();

                    break;

                } else {
                    Toast.makeText(
                            this,\"No Such Database Exists\",Toast.LENGTH_SHORT).show();

                }

            }
    

解决方法

        在Java中,将String内容与equals方法进行比较。与==运算符相比,仅检查两个引用是否指向同一对象。 所以,改变
classNameGlobal == result[b]
classNameGlobal.equals(result[b])
    ,        使用
if (classNameGlobal.equals(result[b])) {
代替
==
。