判空用StringUtils.isBlank還是StringUtils.isEmpty?
本文公眾號(hào)來(lái)源:Java旅途作者:Java旅途本文已收錄至我的GitHub
在我們?nèi)粘i_(kāi)發(fā)中,判空應(yīng)該是最常用的一個(gè)操作了。因此項(xiàng)目中總是少不了依賴commons-lang3包。這個(gè)包為我們提供了兩個(gè)判空的方法,分別是StringUtils.isEmpty(CharSequence cs)和StringUtils.isBlank(CharSequence cs)。我們分別來(lái)看看這兩個(gè)方法有什么區(qū)別。
一、StringUtils.isEmpty
isEmpty的源碼如下:

這個(gè)方法判斷的是字符串是否為null或者其長(zhǎng)度是否為零。
「測(cè)試效果」

二、StringUtils.isBlank
isBlank的源碼如下:

length(cs)的方法如下

這個(gè)方法除了判斷字符串是否為null和長(zhǎng)度是否為零,還判斷了是否為空格,如果是空格也返回true。
「測(cè)試效果」

三、總結(jié)
- isEmpty:如果是null或者“”則返回true。
- isBlank:如果是null或者“”或者空格或者制表符則返回true。「isBlank判空更加準(zhǔn)確」。
四、擴(kuò)展
在實(shí)際開(kāi)發(fā)中,除了isBlank判空的幾種情況之外,其實(shí)“null”字符串我們也會(huì)當(dāng)作空字符串處理。
我們需要判斷幾個(gè)字段同時(shí)不能為空,如果還用isBlank就顯得有點(diǎn)累贅了。我們可以使用String的可變參數(shù)提供如下工具類。

這個(gè)工具類的優(yōu)點(diǎn)很明顯,一方面判斷了字符串“null”,另一方面對(duì)參數(shù)個(gè)數(shù)無(wú)限制,只要有一個(gè)參數(shù)是空則返回true。
各類知識(shí)點(diǎn)總結(jié)
下面的文章都有對(duì)應(yīng)的原創(chuàng)精美PDF,在持續(xù)更新中,可以來(lái)找我催更~
- 92頁(yè)的Mybatis
- 129頁(yè)的多線程
- 141頁(yè)的Servlet
- 158頁(yè)的JSP
- 76頁(yè)的集合
- 64頁(yè)的JDBC
- 105頁(yè)的數(shù)據(jù)結(jié)構(gòu)和算法
- 142頁(yè)的Spring
- 58頁(yè)的過(guò)濾器和監(jiān)聽(tīng)器
- 30頁(yè)的HTTP
- 42頁(yè)的SpringMVC
- Hibernate
- AJAX
- Redis
- ......
掃碼或者微信搜Java3y 免費(fèi)領(lǐng)取原創(chuàng)思維導(dǎo)圖、精美PDF。在公眾號(hào)回復(fù)「888」領(lǐng)取,PDF內(nèi)容純手打有任何不懂歡迎來(lái)問(wèn)我。
原創(chuàng)電子書(shū)
原創(chuàng)思維導(dǎo)圖

![]() |
|


