hive 判断子字符串_Java中检查空字符串(null或空白)的方法有几种?
說明:
本文為牛旦教育原創,頭條首發,轉發須注明來源和原文網址。
1.摘要
在本文中,我們將介紹些方法檢查Java中的空字符串(空的或空白符串)。我們有些語言的原生方法以及幾個庫可用。
2.空與空白(Empty&Blank)
對于知道字符串是否為空是很常見的問題。這里定義空字符串:是指空的或是零長度的字符串。如果一個字符串只有空白字符,我們也稱之為空字符串。
對于Java而言,空白字符串如空格、制表符等。具體詳情可以參考Java API(Character.isWhitespace: https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html#isWhitespace-char-)。
3.空字符串
3.1. Java 6及以上版本
如果使用JDK在Java 6及以上,那么檢查空字符串的最簡單方法是就是子字符串的isEmpty:
boolean isEmptyString(String string) { return string == null || string.isEmpty();}如上為了確保null安全,我們在寫判空函數時,添加了額外的null檢查。
3.2. Java 5及以下版本
字符串的isEmpty方法是隨Java 6引入的。對于Java 5及更低版本,我們可以使用字符串的length進行判斷,自己寫判空方法時,這樣操作:
boolean isEmptyString(String string) { return string == null || string.length() == 0;}從上代碼可知,實際上,isEmpty 只是length的快捷方式。
4.空白字符串
字符串的isEmpty 和length 可用于檢查是否為空字符串。如果我們想想檢查是否為空白字符串,可以使用字符串的trim方法達到目的。trim方法在執行判空前,會刪除開頭結尾的空白(空格)字符,我們可以這樣來寫空白字符串判定方法:
boolean isBlankString(String string) { return string == null || string.trim().isEmpty();}確切地說,trim將刪除Unicode代碼小于或等于U+0020(「鏈接」)的所有前導和尾隨字符。
我們知道String是不可變的,因此調用 trim 實際上不會改變底層字符串的。
5. Bean驗證
檢查空字符串的另一種方法是用正則表達式。這對于Java Bean驗證來說非常方便:
@Pattern(regexp = "A(?!s*Z).+")String someString;給定的正則表達式會確保空字符串或空白符串無效。
6.使用Apache Commons
如果可以添加依賴項,我們可以使用 Apache Commons Lang(Lang – Home)。這是個很有用的Java工具。
如果我們使用Maven,我們需要添加的公地lang3依賴 于我們的POM:
org.apache.commons commons-lang3除此之外,這個工具類庫還提供了StringUtils 類,這個類帶有像isEmpty,isBlank等方法:
StringUtils.isBlank(string)此調用與我們自己的isBlankString方法相同。它是null安全的并且還檢查空格。
7.使用Guava
另一很知名的類庫是google的Guava所包含的字符串工具類。從版本23.1開始,有兩種Guava:android 和jre。Android風格針對Android和Java 7,而JRE風格適用于Java 8。
如果我們不針對Android目標,我們可以將JRE風格的Guava添加到我們的pom中:
com.google.guava guava 28.0-jreGuava的 Strings類附帶了一個方法Strings.isNullOrEmpty:
Strings.isNullOrEmpty(string)它檢查給定字符串是null還是空的,但不檢查全空白字符串。
8.總結
以上為幾種方法來檢查字符串是否為空。通常想檢查字符串是否為空白的,這意味著它只包含空格字符。
最方便的方法是使用Apache Commons Lang,它提供諸如StringUtils.isBlank之類的幫助類。如果要堅持使用普通Java,我們可以將字符串原生的trim與isEmpty或length組合使用。對于Bean驗證,可以使用正則表達式。
好了。比較基礎的內容,就寫到這里了 ,分享出去吧。
總結
以上是生活随笔為你收集整理的hive 判断子字符串_Java中检查空字符串(null或空白)的方法有几种?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: _Linux 的文件系统及文件缓存知识点
- 下一篇: java美元兑换,(Java实现) 美元