關(guān)于StringUtils.isBlank()的使用及說明
StringUtils.isBlank()的使用
在校驗一個String類型的變量是否為空時,可以使用StringUtils.isBlank方法,它可以校驗三種情況:是否為null、是否為""、是否為空字符串(引號中間有空格)" "、制表符、換行符、換頁符和回車。
StringUtils.isBlank(str); 當(dāng)str不為空時,返回值為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進行了為空(字符串為空格、制表符、tab的情況)的判斷。一般比較常用。
大家可以通過下面的例子進行體會:
StringUtils.isEmpty("yyy") = false StringUtils.isEmpty("") = true StringUtils.isEmpty(" ? ") = false StringUtils.isBlank("yyy") = false StringUtils.isBlank("") = true StringUtils.isBlank(" ? ") = true
常用的方法,但是時間久了會記憶模糊,特作出記錄,高手可以忽略。。。
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)和空格時,為true;isEmpty()
判斷制表符(\t)和空格時,為false;
兩個判斷null、""、以及換行符(\n或者\r)時為true。
兩者的不同主要是因為:
isBlank()源碼:
isBlank()判斷是否為null和length()為0,還判斷是否是空格、tab鍵、換行符。
isWhitespace() 方法用于判斷指定字符是否為空白字符,空白符包含:空格、tab 鍵、換行符
isEmpty()源碼
isEmpty()只判斷是否為null和長度為0。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java?實戰(zhàn)項目之家政服務(wù)平臺系統(tǒng)的實現(xiàn)流程
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+jsp+mysql+maven實現(xiàn)家政服務(wù)平臺系統(tǒng),大家可以在過程中查缺補漏,提升水平2021-11-11解決Spring?Security集成knife4j訪問接口文檔出現(xiàn)403的問題
這篇文章主要給大家介紹了如何解決Spring?Security集成knife4j訪問接口文檔出現(xiàn)403的問題,文中有詳細的解決方案,有需要的朋友可以參考閱讀下2023-07-07解決程序包org.springframework.test.context不存在
這篇文章主要介紹了解決程序包org.springframework.test.context不存在的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09SpringBoot如何對LocalDateTime進行格式化并解析
這篇文章主要介紹了SpringBoot如何對LocalDateTime進行格式化方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07SpringBoot中yml多環(huán)境配置的3種方法
這篇文章主要給大家介紹了SpringBoot中yml多環(huán)境配置的3種方法,文中有詳細的代碼示例供大家參考,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-10-10