检查if语句是否为空';t在java中工作
以下是我的if声明:检查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
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。检查数组的值。@user2297366if(tempString==“0”){
这里比较数字或字符串的是什么?如果是字符串,最好使用String#equals()
而不是@booleanCube Answer建议的=
。如果您以后已经想要空字符串,为什么要在getPrefs()中插入null
String.split返回空值似乎很奇怪。从您的代码判断,我认为要么数组本身是空的,要么字符串中没有空值。让我们不要输入if-statement。或者可能是“null”?:-)然后尝试equalsIgnoreCase
if(SharedPrefsData.subscribers[i] == null || SharedPrefsData.subscribers[i].equals("null"))