2014-02-24 45 views
-2

我的Java代码(Android/Eclipse)中的if/else函数有问题。如果语句问题与MySQL getstring

当我处于调试模式时,checkGender等于“M”,但直接进入“else”指令并认为'checkGender'不等于“M”。我不明白为什么?有关信息,searcher.getString(“Gender”)从MySQL获取信息。

String checkGender = ""; 

checkGender = searcher.getString("Gender"); 

if(checkGender == "M") 
{ 
    bGenderM.setChecked(true); 
} 
else 
{ 
    bGenderF.setChecked(true); 
} 

调试信息: checkGender = “M”(ID = 8300460 ...) 值[0] = M

如果我替换 “searcher.getString(” 性别 “);”通过一个简单的“M”,它的工作原理。

感谢您的帮助。

汤姆

回答

1

使用equals()方法,而不是==String比较。

if(checkGender.equals("M")) { 

    bGenderM.setChecked(true); 

} else { 

    bGenderF.setChecked(true); 

} 

或者,使用equalsIgnoreCase()方法,它更好的......

if(checkGender.equalsIgnoreCase("M")) { 

    bGenderM.setChecked(true); 

} else { 

    bGenderF.setChecked(true); 

} 
2

其实最好是做“尤达式”

if("M".equals(checkGender)) { 
    //code for male 
} else { 
    //code for female 
} 

您避免这样潜在NullPointerExceptioncheckGender == null

+1

太棒了!谢谢,它现在工作正常! – user3346854