Java 将两个字符串与.equals()don';行不通
我从列表中得到一个字符串,并尝试将其与值中的一些字符串进行比较,然后做一些事情Java 将两个字符串与.equals()don';行不通,java,android,string,compare,equals,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 st
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);
}
}
for(int i=0;iR.string.percentbattery
不是字符串,它是一个整数,是引用字符串的ID
你想要的是:
LIST_TITLE.equals(context.getResources.getString(R.string.percentbattery))
R.string.percentbattery
不是字符串,它是一个整数,是引用字符串的ID
你想要的是:
LIST_TITLE.equals(context.getResources.getString(R.string.percentbattery))
R.string.xxx
是一个int
。您需要从res
差不多
if(LIST_TITLE.equals(getResources().getString(R.string.percentbattery)))
这是假设您有可用的活动上下文
。否则,您需要在getResources()前面添加上下文
变量
R.string.xxx
是一个int
。您需要从res
中获取字符串
差不多
if(LIST_TITLE.equals(getResources().getString(R.string.percentbattery)))
这是假设您有可用的活动上下文
。否则,您需要在getResources()
R.string前面添加一个上下文
变量。某些id
只是一个整数,您可以通过它从资源中获取字符串。
因此,为了在您的情况下正确比较字符串
,您必须执行以下操作:
String precentBattery = getResources().getString(R.string.percentbattery);
if (LIST_TITLE.equals (percentBattery)) ...
R.string.some_id
只是一个整数,通过它可以从资源中获取字符串。
因此,为了在您的情况下正确比较字符串
,您必须执行以下操作:
String precentBattery = getResources().getString(R.string.percentbattery);
if (LIST_TITLE.equals (percentBattery)) ...
这是不正确的,因为您试图将字符串与资源ID进行比较
您应该首先从资源获取字符串:
LIST_TITLE.equals(getResources().getString(R.string.percentbattery))
这是不正确的,因为您试图将字符串与资源ID进行比较
您应该首先从资源获取字符串:
LIST_TITLE.equals(getResources().getString(R.string.percentbattery))
哇!打字时还有四个答案……我打字太慢了:)哇!打字时再回答四个问题。。。我打字太慢:)如果(条件==true)
被认为是糟糕的风格。如果您使用=
而不是=
,则很容易出错,这意味着您正在将true
赋值给条件(如果它是可变的)。这就是为什么最好只使用if(condition)
,或者如果您确实必须将其与true
进行比较,那么就使用yoda样式if(true==condition)
——在这里,即使您使用=
而不是=
,您也会得到编译错误,因为我们可以将值分配给变量,而不是其他值。if(condition==true)
被认为是糟糕的样式。如果使用=
而不是=
,则很容易出错,这意味着您正在将true
赋值给condition
(如果它是可变的)。这就是为什么只使用if(condition)更好的原因
或者如果您确实必须将其与true
进行比较,那么请使用yoda样式if(true==condition)
-在这里,即使您使用=
而不是=
,您也会得到编译错误,因为我们可以将值分配给变量,而不是其他值。即使我使用您的解决方案或列表\u TITLE.equals(“字符串”)
它不起作用。更多详细信息:我在异步任务(doInBackground)
中使用它。我从网站获取标题,并将它们保存在列表标题中。现在我尝试将此列表标题与一些字符串进行比较,以设置图标。在这个异步任务中,我没有上下文,所以我使用了没有上下文的解决方案。列表标题(getResources().getString(R.string.percentbattery))
这可能是错误吗?ThanksHow完全显示您调用它没有什么不同。如果在活动中
您可以调用getString(int)
没有任何其他内容。这就是代码所在的位置。修复代码的重要一点是理解R.string。任何内容都不是字符串,因此您无法将其与字符串进行比较,您需要获得实际字符串才能对其进行比较。即使我使用您的解决方案或列表\u TITLE.equals(“字符串”)
它不起作用。更多详细信息:我在异步任务(doInBackground)
中使用它。我从网站获取标题,并将它们保存在列表标题中。现在我尝试将此列表标题与一些字符串进行比较,以设置图标。在这个异步任务中,我没有上下文,所以我使用了没有上下文的解决方案。列表标题(getResources().getString(R.string.percentbattery))
这可能是错误吗?ThanksHow完全显示您调用它没有什么不同。如果在活动中
您可以调用getString(int)
没有任何其他内容。这就是代码所在的位置。修复代码的重要一点是理解R.string。任何内容都不是字符串,因此您无法将其与字符串进行比较,您需要获得实际字符串才能对其进行比较。