java中isEmpty和isBlank的區(qū)別小結(jié)
干了3年java,代碼中 isEmpty 和 isBlank 的區(qū)別 都不知道,一頓瞎用。也許你兩個(gè)都不知道,也許你除了isEmpty
/isNotEmpty
/isNotBlank
/isBlank
外,并不知道還有isAnyEmpty
/isNoneEmpty
/isAnyBlank
/isNoneBlank
的存在, come on ,讓我們一起來探索org.apache.commons.lang3.StringUtils;
這個(gè)工具類
isEmpty系列
StringUtils.isEmpty()
是否為空. 可以看到 " " 空格是會(huì)繞過這種空判斷,因?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)文章
深入了解SpringBoot中的統(tǒng)一返回和統(tǒng)一異常處理
這篇文章主要為大家詳細(xì)介紹了SpringBoot項(xiàng)目中常用的統(tǒng)一返回結(jié)果和統(tǒng)一異常處理,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2024-01-01詳解高性能緩存Caffeine原理及實(shí)戰(zhàn)
Caffeine是基于Java 8開發(fā)的,提供了近乎最佳命中率的高性能本地緩存組件,Spring5開始不再支持Guava Cache,改為使用Caffeine。Caffeine提供的內(nèi)存緩存使用參考Google guava的API2021-06-06Java8新特性之類型注解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了Java8新特性之類型注解的相關(guān)資料,需要的朋友可以參考下2017-06-06Spring boot集成redis lettuce代碼實(shí)例
這篇文章主要介紹了Spring boot集成redis lettuce代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04教你快速搭建sona服務(wù)及idea使用sona的方法
Sonar 是一個(gè)用于代碼質(zhì)量管理的開放平臺(tái)。通過插件機(jī)制,Sonar 可以集成不同的測(cè)試工具,代碼分析工具,以及持續(xù)集成工具,本文給大家分享搭建sona服務(wù)及idea使用sona的方法,感興趣的朋友一起看看吧2021-06-06Java回調(diào)函數(shù)原理實(shí)例與代理模式的區(qū)別講解
今天小編就為大家分享一篇關(guān)于Java回調(diào)函數(shù)原理實(shí)例與代理模式的區(qū)別講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02Java基礎(chǔ)之位運(yùn)算知識(shí)總結(jié)
最近接觸到了java位運(yùn)算,之前對(duì)位運(yùn)算的了解僅僅停留在表現(xiàn)結(jié)果上,乘2除以2,對(duì)背后的原理并不了解,現(xiàn)在學(xué)習(xí)記錄一下,需要的朋友可以參考下2021-05-05Maven 多模塊父子工程的實(shí)現(xiàn)(含Spring Boot示例)
這篇文章主要介紹了Maven 多模塊父子工程的實(shí)現(xiàn)(含Spring Boot示例),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04