前言
对于Android开发人员总是避免不了要判断空类型,后台返回数据中某个值可能是"",有的时候某个值又是null,我们应该如何正确判断呢?
概念
- null
null表示这个字符串变量不指向内存中的任何一块地址,也就是说它不是对象也不会分配内存空间了,引用为空。这个时候如果你调用它的方法例如length()会出现空指针异常
- " "
" “表示它指向一个长度为0的字符串,在内存中分配了空间,引用一个空串,所以” "是对象
误区与说明
- length是属性,一般集合类对象拥有的属性,获取集合的大小,比如数组的长度;length()是方法,一般字符串对象调用该方法来取得字符串长度,比如str.length();
- 比较方式 对象用equals比较 null用等号比较
- 判断类型为空的
错误写法
if(str1.equals("")||str1==null){ }
正确的写法应该先判断是不是是不是对象,如果是,再判断是不是空字符串
if(str1==null||str1.equals("")){
}
效率最高的判断方式,首先就要判断字符串不是null,然后再判断他的长度。
String str = xxx;
if(str != null && str.length() != 0) { }