2014-02-24 82 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