我想在我的应用程序中比较两个字符串,但无法比较。我不知道它失败的原因。
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有效......
答案 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
}