Java Android If-else条件错误
我不知道为什么下面的条款总是变假,即使它是真的。我比较的是一个字符串变量“classNameGlobal”中用户输入的文本的结果,以及一个DB查询的第二个结果,该查询从表的一列中得到一个字符串值。每当我运行控制开关到else状态时,不运行if部件-- 请看一看Java Android If-else条件错误,java,android,sqlite,Java,Android,Sqlite,我不知道为什么下面的条款总是变假,即使它是真的。我比较的是一个字符串变量“classNameGlobal”中用户输入的文本的结果,以及一个DB查询的第二个结果,该查询从表的一列中得到一个字符串值。每当我运行控制开关到else状态时,不运行if部件-- 请看一看 String result[]; result = new String[cursor.getCount() - 1]; int i = 0; while (cursor.moveToNext()) { result[i]
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转储来自用户输入字符串的查询和tat的结果时。两者都是一样的。现在为什么我总是让这个else部分运行,而不是if部分-——我用来比较数据库查询结果和用户输入字符串的方法是:
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();
}
}
for(int b=0;b
在Java中,将字符串内容与equals方法进行比较。与==运算符进行比较只是检查两个引用是否指向同一个对象
所以,改变
classNameGlobal == result[b]
到
在Java中,将字符串内容与equals方法进行比较。与==运算符进行比较只是检查两个引用是否指向同一个对象 所以,改变
classNameGlobal == result[b]
到
使用if(classNameGlobal.equals(result[b])){
代替=
使用if(classNameGlobal.equals(result[b]){
代替=