關於StringUtils.isBlank()的使用及說明
StringUtils.isBlank()的使用
在校驗一個String類型的變量是否為空時,可以使用StringUtils.isBlank方法,它可以校驗三種情況:是否為null、是否為""、是否為空字符串(引號中間有空格)" "、制表符、換行符、換頁符和回車。
StringUtils.isBlank(str); 當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; } }
在業務代碼中使用第三方jar的工具類去判斷空,簡化開發且方便閱讀,類似的還有isEmpty()方法。
public static boolean isEmpty(CharSequence cs) { return cs == null || cs.length() == 0; }
通過源碼可以看出:
1.isEmpty沒有忽略空格參數,是以是否為空和是否存在未判斷依據。
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的區別和使用
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);
根據上面結果的對比,isBlank()方法和isEmpty方法的區別:
isBlank()
判斷制表符(\t)和空格時,為true;isEmpty()
判斷制表符(\t)和空格時,為false;
兩個判斷null、""、以及換行符(\n或者\r)時為true。
兩者的不同主要是因為:
isBlank()源碼:
isBlank()判斷是否為null和length()為0,還判斷是否是空格、tab鍵、換行符。
isWhitespace() 方法用於判斷指定字符是否為空白字符,空白符包含:空格、tab 鍵、換行符
isEmpty()源碼
isEmpty()隻判斷是否為null和長度為0。
總結
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Springboot如何優雅地進行字段校驗
- Java實現截取字符串的操作詳解
- 一篇文章看懂Java字符串操作
- Java根據ip地址獲取歸屬地實例詳解
- Collection中的size()和isEmpty()區別說明