java中isEmpty和isBlank的區(qū)別小結(jié)
干了3年java,代碼中 isEmpty 和 isBlank 的區(qū)別 都不知道,一頓瞎用。也許你兩個(gè)都不知道,也許你除了isEmpty/isNotEmpty/isNotBlank/isBlank外,并不知道還有isAnyEmpty/isNoneEmpty/isAnyBlank/isNoneBlank的存在, come on ,讓我們一起來(lái)探索org.apache.commons.lang3.StringUtils;這個(gè)工具類(lèi)
isEmpty系列
StringUtils.isEmpty()
是否為空. 可以看到 " " 空格是會(huì)繞過(guò)這種空判斷,因?yàn)槭且粋€(gè)空格,并不是嚴(yán)格的空值,會(huì)導(dǎo)致 isEmpty(" ")=false
StringUtils.isEmpty(null)?=?true
StringUtils.isEmpty("")?=?true
StringUtils.isEmpty("?")?=?false
StringUtils.isEmpty(“bob”)?=?false
StringUtils.isEmpty("?bob?")?=?false/
?*
?*?<p>NOTE:?This?method?changed?in?Lang?version?2.0.
?*?It?no?longer?trims?the?CharSequence.
?*?That?functionality?is?available?in?isBlank().</p>
?*
?*?@param?cs??the?CharSequence?to?check,?may?be?null
?*?@return?{@code?true}?if?the?CharSequence?is?empty?or?null
?*?@since?3.0?Changed?signature?from?isEmpty(String)?to?isEmpty(CharSequence)
?*/
public?static?boolean?isEmpty(final?CharSequence?cs)?{
????return?cs?==?null?||?cs.length()?==?0;
}StringUtils.isNotEmpty()
相當(dāng)于不為空 , = !isEmpty()
public?static?boolean?isNotEmpty(final?CharSequence?cs)?{
????????return?!isEmpty(cs);
????}StringUtils.isAnyEmpty()
是否有一個(gè)為空,只有一個(gè)為空,就為true.
StringUtils.isAnyEmpty(null)?=?true
StringUtils.isAnyEmpty(null,?“foo”)?=?true
StringUtils.isAnyEmpty("",?“bar”)?=?true
StringUtils.isAnyEmpty(“bob”,?“”)?=?true
StringUtils.isAnyEmpty("?bob?",?null)?=?true
StringUtils.isAnyEmpty("?",?“bar”)?=?false
StringUtils.isAnyEmpty(“foo”,?“bar”)?=?false/
?*?@param?css??the?CharSequences?to?check,?may?be?null?or?empty
?*?@return?{@code?true}?if?any?of?the?CharSequences?are?empty?or?null
?*?@since?3.2
?*/
public?static?boolean?isAnyEmpty(final?CharSequence...?css)?{
??if?(ArrayUtils.isEmpty(css))?{
????return?true;
??}
??for?(final?CharSequence?cs?:?css){
????if?(isEmpty(cs))?{
??????return?true;
????}
??}
??return?false;
}StringUtils.isNoneEmpty()
相當(dāng)于!isAnyEmpty(css) , 必須所有的值都不為空才返回true
/
?*?<p>Checks?if?none?of?the?CharSequences?are?empty?("")?or?null.</p>
?*
?*?<pre>
?*?StringUtils.isNoneEmpty(null)?????????????=?false
?*?StringUtils.isNoneEmpty(null,?"foo")??????=?false
?*?StringUtils.isNoneEmpty("",?"bar")????????=?false
?*?StringUtils.isNoneEmpty("bob",?"")????????=?false
?*?StringUtils.isNoneEmpty("??bob??",?null)??=?false
?*?StringUtils.isNoneEmpty("?",?"bar")???????=?true
?*?StringUtils.isNoneEmpty("foo",?"bar")?????=?true
?*?</pre>
?*
?*?@param?css??the?CharSequences?to?check,?may?be?null?or?empty
?*?@return?{@code?true}?if?none?of?the?CharSequences?are?empty?or?null
?*?@since?3.2
?*/
public?static?boolean?isNoneEmpty(final?CharSequence...?css)?{isBank系列
StringUtils.isBlank()
是否為真空值(空格或者空值)
StringUtils.isBlank(null)?=?true
StringUtils.isBlank("")?=?true
StringUtils.isBlank("?")?=?true
StringUtils.isBlank(“bob”)?=?false
StringUtils.isBlank("?bob?")?=?false/
?*?<p>Checks?if?a?CharSequence?is?whitespace,?empty?("")?or?null.</p>
?*?@param?cs??the?CharSequence?to?check,?may?be?null
?*?@return?{@code?true}?if?the?CharSequence?is?null,?empty?or?whitespace
?*?@since?2.0
?*?@since?3.0?Changed?signature?from?isBlank(String)?to?isBlank(CharSequence)
?*/
public?static?boolean?isBlank(final?CharSequence?cs)?{
????int?strLen;
????if?(cs?==?null?||?(strLen?=?cs.length())?==?0)?{
????????return?true;
????}
????for?(int?i?=?0;?i?<?strLen;?i++)?{
????????if?(Character.isWhitespace(cs.charAt(i))?==?false)?{
????????????return?false;
????????}
????}
????return?true;
}StringUtils.isNotBlank()
是否真的不為空,不是空格或者空值 ,相當(dāng)于!isBlank();
public?static?boolean?isNotBlank(final?CharSequence?cs)?{
????????return?!isBlank(cs);
????}StringUtils.isAnyBlank()
是否包含任何真空值(包含空格或空值)
StringUtils.isAnyBlank(null)?=?true
StringUtils.isAnyBlank(null,?“foo”)?=?true
StringUtils.isAnyBlank(null,?null)?=?true
StringUtils.isAnyBlank("",?“bar”)?=?true
StringUtils.isAnyBlank(“bob”,?“”)?=?true
StringUtils.isAnyBlank("?bob?",?null)?=?true
StringUtils.isAnyBlank("?",?“bar”)?=?true
StringUtils.isAnyBlank(“foo”,?“bar”)?=?false?/
?*?<p>Checks?if?any?one?of?the?CharSequences?are?blank?("")?or?null?and?not?whitespace?only..</p>
?*?@param?css??the?CharSequences?to?check,?may?be?null?or?empty
?*?@return?{@code?true}?if?any?of?the?CharSequences?are?blank?or?null?or?whitespace?only
?*?@since?3.2
?*/
public?static?boolean?isAnyBlank(final?CharSequence...?css)?{
??if?(ArrayUtils.isEmpty(css))?{
????return?true;
??}
??for?(final?CharSequence?cs?:?css){
????if?(isBlank(cs))?{
??????return?true;
????}
??}
??return?false;
}StringUtils.isNoneBlank()
是否全部都不包含空值或空格
StringUtils.isNoneBlank(null)?=?false
StringUtils.isNoneBlank(null,?“foo”)?=?false
StringUtils.isNoneBlank(null,?null)?=?false
StringUtils.isNoneBlank("",?“bar”)?=?false
StringUtils.isNoneBlank(“bob”,?“”)?=?false
StringUtils.isNoneBlank("?bob?",?null)?=?false
StringUtils.isNoneBlank("?",?“bar”)?=?false
StringUtils.isNoneBlank(“foo”,?“bar”)?=?true/
?*?<p>Checks?if?none?of?the?CharSequences?are?blank?("")?or?null?and?whitespace?only..</p>
?*?@param?css??the?CharSequences?to?check,?may?be?null?or?empty
?*?@return?{@code?true}?if?none?of?the?CharSequences?are?blank?or?null?or?whitespace?only
?*?@since?3.2
?*/
public?static?boolean?isNoneBlank(final?CharSequence...?css)?{
??return?!isAnyBlank(css);
}StringUtils的其他方法
可以參考官方的文檔,里面有詳細(xì)的描述,有些方法還是很好用的.
https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html

到此這篇關(guān)于java中isEmpty和isBlank的區(qū)別小結(jié)的文章就介紹到這了,更多相關(guān)java isEmpty isBlank內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java springboot Mongodb增刪改查代碼實(shí)例
這篇文章主要介紹了Java springboot Mongodb增刪改查代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
Springboot日志開(kāi)啟SLF4J過(guò)程解析
這篇文章主要介紹了Springboot日志開(kāi)啟SLF4J過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
使用JWT創(chuàng)建解析令牌及RSA非對(duì)稱(chēng)加密詳解
這篇文章主要介紹了JWT創(chuàng)建解析令牌及RSA非對(duì)稱(chēng)加密詳解,JWT是JSON Web Token的縮寫(xiě),即JSON Web令牌,是一種自包含令牌,一種情況是webapi,類(lèi)似之前的阿里云播放憑證的功能,另一種情況是多web服務(wù)器下實(shí)現(xiàn)無(wú)狀態(tài)分布式身份驗(yàn)證,需要的朋友可以參考下2023-11-11
Vue?+?springboot實(shí)現(xiàn)拼圖人機(jī)驗(yàn)證功能
本文介紹了如何使用Vue和Spring?Boot實(shí)現(xiàn)拼圖人機(jī)驗(yàn)證功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2026-01-01
SpringBoot項(xiàng)目修改訪問(wèn)端口和訪問(wèn)路徑的方法
這篇文章主要介紹了SpringBoot項(xiàng)目修改訪問(wèn)端口和訪問(wèn)路徑的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
java使用Runtime.getRuntime().exec調(diào)用外部程序
Runtime.getRuntime().exec一般用于調(diào)用外部可執(zhí)行程序或系統(tǒng)命令,并重定向外部程序的標(biāo)準(zhǔn)輸入,準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤到緩沖池,下面我們來(lái)看看Java如何使用它進(jìn)行調(diào)用外部程序吧2025-06-06
詳解mybatis多對(duì)一關(guān)聯(lián)查詢(xún)的方式
這篇文章主要給大家介紹了關(guān)于mybatis多對(duì)一關(guān)聯(lián)查詢(xún)的相關(guān)資料,文中將關(guān)聯(lián)方式以及配置方式介紹的很詳細(xì),需要的朋友可以參考下2021-06-06
SpringBoot手寫(xiě)starter全過(guò)程
本文主要介紹了如何手動(dòng)編寫(xiě)SpringBoot的starter,包括創(chuàng)建項(xiàng)目、配置自動(dòng)配置類(lèi)、編寫(xiě)Properties文件、配置spring.factories文件等步驟,并通過(guò)測(cè)試項(xiàng)目驗(yàn)證其功能,同時(shí),還討論了如何實(shí)現(xiàn)開(kāi)關(guān)控制等功能2026-05-05

