字符串比较在android中不起作用

时间:2014-03-13 07:54:40

标签: android

我想在我的应用程序中比较两个字符串,但无法比较。我不知道它失败的原因。

    public void processFinish(String output) {
            // TODO Auto-generated method stub
            //Toast.makeText(getApplicationContext(), output,Toast.LENGTH_LONG).show();

            String check="false";
            if(output==check){
                     //doing something here
                }else{
                    //something here
                }
   }

字符串对象输出的值为" false" 但总是执行else块为什么? 我尝试将output=="false"更改为

output.equals(check)
output.equalsIgnoreCase(check)
output.contentEquals(check)

nothings有效......

4 个答案:

答案 0 :(得分:8)

public void processFinish(String output) {
            // TODO Auto-generated method stub
            //Toast.makeText(getApplicationContext(), output,Toast.LENGTH_LONG).show();

            String check="false";
            if(output.trim().equals(check.trim())){
                     //doing something here
                }else{
                    //something here
                }
}

你的字符串从方法trim()中获取一些不需要的空格,删除开始和结束空格:)和.equals是一个比较两个字符串的对象类方法:)

答案 1 :(得分:1)

由于String的实例是对象,因此您无法将两个对象与==进行比较。要比较两个String,您必须使用equals()equalIgnoreCase()方法。

替换此

if(output==check){
    //doing something here
}else{
    //something here
}

...与

if(output.equals(check)){
    //doing something here
}else{
    //something here
}

答案 2 :(得分:0)

我认为output.equals(check)必须有效

或者你的描述可能不正确。可能它不是一串" false"但是"假"?

首先,检查它们的长度,然后使用output.trim().equals(check)

答案 3 :(得分:0)

尝试以下

         if(output.contains(check)== true{
                 //doing something here
            }else{
                //something here
            }
相关问题