String.equals()总是返回true
问题描述:
K想比较两个字符串,但equals()
方法总是返回true,所以if语句总是运行。为什么会发生?String.equals()总是返回true
resultString = "Test1";
String CompleteString = "Test";
if(CompleteString.equals(resultString));
{
rowView.setBackgroundResource(R.color.listselect_red);
}
答
if(CompleteString.equals(resultString));
< - 删除;
你的代码是等价于:
if(CompleteString.equals(resultString))
{
//empty block
}
{
rowView.setBackgroundResource(R.color.listselect_red);
}
所以,如果等于返回true,则空块将被执行,而第二块之后将是总是执行任何如果是false
或true
。
答
删除if语句后的;
。
if(CompleteString.equals(resultString))
{
rowView.setBackgroundResource(R.color.listselect_red);
}
答
从if(CompleteString.equals(resultString));
;
除去;
装置语句的端部,从而即使在if()
环returns
false
或true
所有语句本if()
之后将executed.So rowView.setBackgroundResource(R.color.listselect_red);
将被执行的所有的时间。
尝试这种方式
resultString = "Test1";
String CompleteString = "Test";
if(CompleteString.equals(resultString))// removed `;`
{
rowView.setBackgroundResource(R.color.listselect_red);
}
答
这是因为 ';'在if的结尾。只要删除,它会工作!
答
if(CompleteString.equals(resultString));
块,如果它看起来像一个空的条件:)它不会进入
答
这是因为分号的,如果条件..
正确的代码
resultString = "Test1";
String CompleteString = "Test";
if(CompleteString.equals(resultString))
{
rowView.setBackgroundResource(R.color.listselect_red);
}
+1
它为我工作.... !!! – 2013-12-14 11:08:49
谢谢,我没有看到!有时候犯这样一个愚蠢的错误让我很生气 – Memento
我犯了错误,因为我没有看到那个分号,有时会发生,但我不明白downvote?这些网站提出了这样的问题,其中一些难以解决,其中一些很容易! – Memento