2013-07-10 55 views
0

這裏是我的if語句:檢查空的if語句是不是在java中工作

for(int i=0;i<SharedPrefsData.subscribers.length; i++){//loop through subscribers array 
     if(SharedPrefsData.subscribers[i] == null){//if string at index i is null 
      SharedPrefsData.subscribers[i] = "";//make it empty string instead of null 
     } 

    } 

我希望它遍歷字符串數組,並檢查是否每個元素都是null。我的陣列是:

[name_1, null, null, null, null, null, null, null, null, null, null, null, null, null, null] 

但它永遠不會進入我的if語句的當時部分。如果任何人都可以提供幫助,將不勝感激。

編輯:我的代碼,將數組:

public static String[] getPrefs(){ 
    String[] ToReturn; 
    String tempString = settings.getString("123", "0"); 
    if(tempString == "0"){ 
     //show some type of error 
     ToReturn = null; 
    } else { 
     ToReturn = tempString.split("@,#"); 
    } 
    return ToReturn; 


} 

這是調用該方法的語句:

SharedPrefsData.setSubscribers(SharedPrefsData.getPrefs()); 

settings是同一類SharedPreferences類型的字段

+1

您是否嘗試打印'SharedPrefsData.subscribers [i]'的值? –

+2

用'String [] subscribers = {「test」,null,null,null}來測試你的代碼;'它會進入if語句。檢查你的數組的值。 –

+0

@HunterMcMillen我正在使用eclipse,所以我只是添加了一堆斷點和滾動變量來檢查值 –

回答

0

問題可能在於數據來源

SharedPrefsData.subscribers數組可能具有'null'字符串而不是null。 剛剛嘗試

if(SharedPrefsData.subscribers[i] == null || SharedPrefsData.subscribers[i].equals("null")) 

同樣,問題可能是與源,如果問題是由上面的語句解決,你需要看看源,並確保它不到位空的迴歸「NULL」串對象

+0

不輸入if語句。 –

+0

或者「空」? :-)然後嘗試equalsIgnoreCase –