string比较:“==”,equals(),TextUtils.isEmpty(str),str.isEmpty()的区别
1.“==”
- 属于基础操作符
- 用于基础数据类型的比较
- 比较的时候判断的是引用是否指向堆内存的同一块地址
2.equals
- String类中的方法
- 比较当前字符串对象的实体是否与参数指定的字符串实体相同(比较内容)
3.TextUtils.isEmpty(str)
源码分析:
public static boolean isEmpty(CharSequence str) { if (str == null || str.length() == 0) return true; else return false; }
- String实现了这个接口
- 我们可以用TextUtils.isEmpty(str)来代替if(text==null || text.length()==0)
4.str.isEmpty()
相当于只判断了str.length == 0.当null的时候,会出现空指针异常