關(guān)于StringUtils.isBlank()的使用及說明
StringUtils.isBlank()的使用
在校驗(yàn)一個(gè)String類型的變量是否為空時(shí),可以使用StringUtils.isBlank方法,它可以校驗(yàn)三種情況:是否為null、是否為""、是否為空字符串(引號中間有空格)" "、制表符、換行符、換頁符和回車。
StringUtils.isBlank(str); 當(dāng)str不為空時(shí),返回值為false。
下面是該方法的源碼:
public static boolean isBlank(CharSequence cs) {
? ? ? ? int strLen;
? ? ? ? if (cs != null && (strLen = cs.length()) != 0) {
? ? ? ? ? ? for(int i = 0; i < strLen; ++i) {
? ? ? ? ? ? ? ? if (!Character.isWhitespace(cs.charAt(i))) {
? ? ? ? ? ? ? ? ? ? return false;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? return true;
? ? ? ? } else {
? ? ? ? ? ? return true;
? ? ? ? }
? ? }在業(yè)務(wù)代碼中使用第三方j(luò)ar的工具類去判斷空,簡化開發(fā)且方便閱讀,類似的還有isEmpty()方法。
public static boolean isEmpty(CharSequence cs) {
? ? ? ? return cs == null || cs.length() == 0;
? ? }通過源碼可以看出:
1.isEmpty沒有忽略空格參數(shù),是以是否為空和是否存在未判斷依據(jù)。
2.isBlank進(jìn)行了為空(字符串為空格、制表符、tab的情況)的判斷。一般比較常用。
大家可以通過下面的例子進(jìn)行體會(huì):
StringUtils.isEmpty("yyy") = false
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ? ") = false
StringUtils.isBlank("yyy") = false
StringUtils.isBlank("") = true
StringUtils.isBlank(" ? ") = true常用的方法,但是時(shí)間久了會(huì)記憶模糊,特作出記錄,高手可以忽略。。。
StringUtils.isBlank和StringUtils.isEmpty的區(qū)別和使用
StringUtils.isBlank和StringUtils.isEmpty都是判斷空的方法。
依賴:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>isBlan()的使用
boolean b1 = StringUtils.isBlank(null);
boolean b2 = StringUtils.isBlank("");
boolean b3 = StringUtils.isBlank(" ");
boolean b4 = StringUtils.isBlank("\t");
boolean b5 = StringUtils.isBlank("\n");
boolean b6 = StringUtils.isBlank("test");
System.out.println("判斷null = "+ b1 + '\n' + "判斷\"\" = "+ b2 + '\n'
+ "判斷空格 = "+ b3 + '\n' + "判斷制表符 = "+ b4 + '\n' + "判斷換行符 = "+ b5
+ '\n' + "判斷字符串 = "+ b6);
isEmpty()的使用
boolean b1 = StringUtils.isEmpty(null);
boolean b2 = StringUtils.isEmpty("");
boolean b3 = StringUtils.isEmpty(" ");
boolean b4 = StringUtils.isEmpty("\t");
boolean b5 = StringUtils.isBlank("\n");
boolean b6 = StringUtils.isEmpty("test");
System.out.println("判斷null = "+ b1 + '\n' + "判斷\"\" = "+ b2 + '\n'
+ "判斷空格 = "+ b3 + '\n' + "判斷制表符 = "+ b4 + '\n' + "判斷換行符 = "+ b5
+ '\n' + "判斷字符串 = "+ b6);
根據(jù)上面結(jié)果的對比,isBlank()方法和isEmpty方法的區(qū)別:
isBlank()判斷制表符(\t)和空格時(shí),為true;isEmpty()判斷制表符(\t)和空格時(shí),為false;
兩個(gè)判斷null、""、以及換行符(\n或者\(yùn)r)時(shí)為true。
兩者的不同主要是因?yàn)椋?/p>
isBlank()源碼:

isBlank()判斷是否為null和length()為0,還判斷是否是空格、tab鍵、換行符。
isWhitespace() 方法用于判斷指定字符是否為空白字符,空白符包含:空格、tab 鍵、換行符
isEmpty()源碼

isEmpty()只判斷是否為null和長度為0。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java?實(shí)戰(zhàn)項(xiàng)目之家政服務(wù)平臺(tái)系統(tǒng)的實(shí)現(xiàn)流程
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+jsp+mysql+maven實(shí)現(xiàn)家政服務(wù)平臺(tái)系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平2021-11-11
解決Spring?Security集成knife4j訪問接口文檔出現(xiàn)403的問題
這篇文章主要給大家介紹了如何解決Spring?Security集成knife4j訪問接口文檔出現(xiàn)403的問題,文中有詳細(xì)的解決方案,有需要的朋友可以參考閱讀下2023-07-07
解決程序包org.springframework.test.context不存在
這篇文章主要介紹了解決程序包org.springframework.test.context不存在的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
SpringBoot如何對LocalDateTime進(jìn)行格式化并解析
這篇文章主要介紹了SpringBoot如何對LocalDateTime進(jìn)行格式化方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
SpringBoot中yml多環(huán)境配置的3種方法
這篇文章主要給大家介紹了SpringBoot中yml多環(huán)境配置的3種方法,文中有詳細(xì)的代碼示例供大家參考,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-10-10

