Too many of us are not living our dreams because we are living our fears.
判断字符串是否为空是在 Android 开发中是最长用的一个判断,判断时也经常会看到有不同的判断方式,今天专门研究了一下,记录下来。
先定义一个字符串,
这种定义方式是我们学用的方式,那么这样定义时在字符串时,该怎么判断它是不是空呢?来用代码验证一下:
打出的来 log 是这样的:
12-13 22:57:01.693 5129-5129/com.example.dddd.myapplication E/MainActivity: s == null
可以看到这个时候,如果 s 没有赋值,它就为 null。
现在做一个小改动,这样定义字符串,
这时我们这这样来判断,
这样打出来的 log 是这样的:
12-13 23:06:35.263 6017-6017/com.example.dddd.myapplication E/MainActivity: s is empty
当用 new 关键字创建字符串对象时,如果 s 没有赋值,那么这时的 s 并不是 null,而它的 isEmpty()方法为 true,这时进入到 isEmpty()方法中去看看,
可以看到只有当字符串的长度为 0 时,才会返回 true。所有用 new 关键字创建的字符串对象在没有赋值的情况下它的长度是 0 ,但并不是 null。
还有一个经常用的判断方法就是 if(s == ""),这个就很简单了,就不多言了。
总结:当没有用 new 关键字创建字符串对象,或是没有 s = "",这两种创建方式的话,是不能用 isEmpty()方法来判断的,那样的话会报空指针异常。所以在判断字符串是否为空时要注意这一点,避免报错。
领取专属 10元无门槛券
私享最新 技术干货