用.equals()比较两个字符串不起作用

时间:2014-09-11 15:31:02

标签: java android string compare equals

我从列表中获取一个字符串并尝试将其与值中的某些字符串进行比较,然后执行一些操作

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。...)进行比较,它们是相同的,但我只得到&#34; TITLE NOT EQUAL&#34;记录else语句。

还有另一种比较这些字符串的方法吗? &#34; ==&#34;方法也不起作用。

4 个答案:

答案 0 :(得分:3)

R.string.percentbattery不是String,它是一个Integer,是引用该字符串的ID。

你想要的是:

LIST_TITLE.equals(context.getResources.getString(R.string.percentbattery))

答案 1 :(得分:2)

LIST_TITLE.equals(R.string.percentbattery)

这是不正确的,因为您正在尝试将字符串与资源ID进行比较 您应该首先从资源中获取字符串:

LIST_TITLE.equals(getResources().getString(R.string.percentbattery))

答案 2 :(得分:0)

R.string.xxxint。您需要从String

获取res

这样的东西
if(LIST_TITLE.equals(getResources().getString(R.string.percentbattery)))

假设您有Activity Context可用。否则,您需要在Context

前添加getResources()变量

答案 3 :(得分:0)

R.string.some_id只是一个整数,通过它可以从资源中获取String。 因此,为了在您的情况下正确比较Strings,您必须这样做:

String precentBattery = getResources().getString(R.string.percentbattery);
if (LIST_TITLE.equals (percentBattery)) ...