【问题标题】:String.equals() always return trueString.equals() 总是返回 true
【发布时间】:2013-12-14 10:56:11
【问题描述】:

K 想要比较两个字符串,但 equals() 方法总是返回 true ,所以 if 语句总是运行。为什么会这样?

resultString = "Test1";
String CompleteString = "Test";
if(CompleteString.equals(resultString));
{
   rowView.setBackgroundResource(R.color.listselect_red);
}

【问题讨论】:

    标签: java android string


    【解决方案1】:

    if(CompleteString.equals(resultString)); ;

    您的代码相当于:

    if(CompleteString.equals(resultString))
    {
      //empty block
    }
    {
       rowView.setBackgroundResource(R.color.listselect_red);
    }
    

    所以如果 equals 返回 true,则将执行空块,并且在第二个块之后将始终执行无论 if 是 false 还是 true。

    【讨论】:

    • 谢谢,我没看到!有时犯这么愚蠢的错误会让我生气
    • 我犯了错误,因为我没有看到分号,有时会发生,但我不明白反对票?这个网站就是为这样的问题而设计的,有些问题很难解决,有些很容易!
    【解决方案2】:

    删除 if 语句后的;。

    if(CompleteString.equals(resultString))
    {
      rowView.setBackgroundResource(R.color.listselect_red);
    }
    

    【讨论】:

      【解决方案3】:

      这是因为';'在 if 结束时。只需删除即可!

      【讨论】:

        【解决方案4】:
        if(CompleteString.equals(resultString));
        

        如果块看起来像一个空的条件,它不会进入:)

        【讨论】:

          【解决方案5】:

          从if(CompleteString.equals(resultString)); 中删除;

          ; 表示语句结束,所以即使是 if() 循环 returns false 或 true 所有出现在 if() 之后的语句都将被执行。所以 rowView.setBackgroundResource(R.color.listselect_red); 将一直执行。

          试试这个方法

          resultString = "Test1";
          String CompleteString = "Test";
          if(CompleteString.equals(resultString))// removed `;`
          {
             rowView.setBackgroundResource(R.color.listselect_red);
          }
          

          【讨论】:

            【解决方案6】:

            这是因为if条件中的分号..

            正确的代码

            resultString = "Test1";
            String CompleteString = "Test";
            if(CompleteString.equals(resultString))
            {
               rowView.setBackgroundResource(R.color.listselect_red);
            }
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-08-06
              • 2017-05-10
              • 2013-06-12
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多