检查if语句是否为空';t在java中工作

检查if语句是否为空';t在java中工作,java,android,if-statement,null,arrays,Java,Android,If Statement,Null,Arrays,以下是我的if声明: 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 s

以下是我的if声明:

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
        }

    }
但它从未进入我的if语句的then部分。如果有人能帮忙,我们将不胜感激

编辑:设置数组的我的代码:

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
是同一类型的字段
SharedReferences

问题可能出在数据源中

SharedPrefsData.subscribers数组可能具有“null”字符串而不是null。 试试看

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

同样,问题可能与源代码有关,如果通过上述语句解决了问题,则需要查看源代码并确保它没有返回“null”字符串来代替null对象

您是否尝试打印出
SharedPrefsData.subscribers[i]
?使用
string[]subscribers={“test”测试了您的代码,null,null,null}并进入if fine。检查数组的值。@user2297366
if(tempString==“0”){
这里比较数字或字符串的是什么?如果是字符串,最好使用
String#equals()
而不是@booleanCube Answer建议的
=
。如果您以后已经想要空字符串,为什么要在
getPrefs()中插入
null
String.split返回空值似乎很奇怪。从您的代码判断,我认为要么数组本身是空的,要么字符串中没有空值。让我们不要输入if-statement。或者可能是“null”?:-)然后尝试equalsIgnoreCase
if(SharedPrefsData.subscribers[i] == null ||  SharedPrefsData.subscribers[i].equals("null"))