【发布时间】:2014-09-11 15:31:02
【问题描述】:
我从列表中得到一个字符串,并尝试将它与值中的一些字符串进行比较,然后做一些事情
for(int i=0; i<sizeOfList; i++){
String LIST_TITLE;
LIST_TITLE = list_title.get(i); //the List list_title includes some strings
if(LIST_TITLE.equals(R.string.percentbattery)) {
//do stuff
Log.d("EQUAL!","" + LIST_TITLE);
} else if(LIST_TITLE.equals(R.string.screenrecorder) == true) {
//do stuff
Log.d("EQUAL!","" + LIST_TITLE);
} else if(LIST_TITLE.equals(R.string.eightsms) == true) {
//do stuff
Log.d("EQUAL!","" + LIST_TITLE);
} else {
// do stuff
Log.e("TITLE NOT EQUAL","" + LIST_TITLE);
}
}
如果我将我的 LIST_TITLE 与 Logcat 中的 (R.string. ...) 进行比较,它们是相等的,但我从 else 语句中只得到“TITLE NOT EQUAL”日志。
还有其他方法可以比较这些字符串吗? "==" 方法也不起作用。
【问题讨论】:
-
if (condition == true)被认为是糟糕的风格。使用=而不是==很容易出错,这意味着您将true分配给condition(如果它是变量)。这就是为什么最好只使用if (condition),或者如果你真的必须将它与true进行比较,那么使用yoda风格if (true == condition)- 即使你使用=而不是==,你也会得到编译错误,因为我们可以给变量赋值,而不是给其他值。
标签: java android string compare equals