StringUtils工具類的常用方法

StringUtils 方法的操作對象是 java.lang.String 類型的對象,是 JDK 提供的 String 類型操作方法的補充,并且是 null 安全的(即如果輸入參數 Stringnull 則不會拋出? NullPointerException ,而是做了相應處理,例如,如果輸入為 null 則返回也是 null 等,具體可以查看源代碼)。

除了構造器,StringUtils 中一共有130多個方法,并且都是 static 的,所以我們可以這樣調用 StringUtils.xxx()

下面分別對一些常用方法做簡要介紹:

1. public static boolean isEmpty(String str)
?? 判斷某字符串是否為空,為空的標準是 str==nullstr.length()==0
?? 下面是 StringUtils 判斷是否為空的示例:

StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true

StringUtils.isEmpty(" ") = false
//注意在 StringUtils 中空格作非空處理
StringUtils.isEmpty("?? ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false

?

2. public static boolean isNotEmpty(String str)
?? 判斷某字符串是否非空,等于 !isEmpty(String str)
?? 下面是示例:

????? StringUtils.isNotEmpty(null) = false
????? StringUtils.isNotEmpty("") = false
????? StringUtils.isNotEmpty(" ") = true
????? StringUtils.isNotEmpty("???????? ") = true
????? StringUtils.isNotEmpty("bob") = true
????? StringUtils.isNotEmpty(" bob ") = true


3. public static boolean isBlank(String str)
?? 判斷某字符串是否為空或長度為0或由空白符(whitespace) 構成
?? 下面是示例:
????? StringUtils.isBlank(null) = true
????? StringUtils.isBlank("") = true
????? StringUtils.isBlank(" ") = true
????? StringUtils.isBlank("??????? ") = true
????? StringUtils.isBlank("\t \n \f \r") = true
? //對于制表符、換行符、換頁符和回車符

????? StringUtils.isBlank() ? //均識為空白符
????? StringUtils.isBlank("\b") = false ? //"\b"為單詞邊界符
????? StringUtils.isBlank("bob") = false
????? StringUtils.isBlank(" bob ") = false


4. public static boolean isNotBlank(String str)
?? 判斷某字符串是否不為空且長度不為0且不由空白符(whitespace) 構成,等于 !isBlank(String str)
?? 下面是示例:

????? StringUtils.isNotBlank(null) = false
????? StringUtils.isNotBlank("") = false
????? StringUtils.isNotBlank(" ") = false
????? StringUtils.isNotBlank("???????? ") = false
????? StringUtils.isNotBlank("\t \n \f \r") = false
????? StringUtils.isNotBlank("\b") = true
????? StringUtils.isNotBlank("bob") = true
????? StringUtils.isNotBlank(" bob ") = true

5. public static String trim(String str)
?? 去掉字符串兩端的控制符(control characters, char <= 32) , 如果輸入為 null 則返回null
?? 下面是示例:
????? StringUtils.trim(null) = null
????? StringUtils.trim("") = ""
????? StringUtils.trim(" ") = ""
????? StringUtils.trim("? \b \t \n \f \r??? ") = ""
????? StringUtils.trim("???? \n\tss?? \b") = "ss"
????? StringUtils.trim(" d?? d dd???? ") = "d?? d dd"
????? StringUtils.trim("dd???? ") = "dd"
????? StringUtils.trim("???? dd?????? ") = "dd"

6. public static String trimToNull(String str)
?? 去掉字符串兩端的控制符(control characters, char <= 32) ,如果變為 null 或"",則返回 null
?? 下面是示例:
????? StringUtils.trimToNull(null) = null
????? StringUtils.trimToNull("") = null
????? StringUtils.trimToNull(" ") = null
????? StringUtils.trimToNull("???? \b \t \n \f \r??? ") = null
????? StringUtils.trimToNull("???? \n\tss?? \b") = "ss"
????? StringUtils.trimToNull(" d?? d dd???? ") = "d?? d dd"
????? StringUtils.trimToNull("dd???? ") = "dd"
????? StringUtils.trimToNull("???? dd?????? ") = "dd"

7. public static String trimToEmpty(String str)
?? 去掉字符串兩端的控制符(control characters, char <= 32) ,如果變為 null"" ,則返回 ""
?? 下面是示例:
????? StringUtils.trimToEmpty(null) = ""
????? StringUtils.trimToEmpty("") = ""
????? StringUtils.trimToEmpty(" ") = ""
????? StringUtils.trimToEmpty("???? \b \t \n \f \r??? ") = ""
????? StringUtils.trimToEmpty("???? \n\tss?? \b") = "ss"
????? StringUtils.trimToEmpty(" d?? d dd???? ") = "d?? d dd"
????? StringUtils.trimToEmpty("dd???? ") = "dd"
????? StringUtils.trimToEmpty("???? dd?????? ") = "dd"

8. public static String strip(String str)

?? 去掉字符串兩端的空白符(whitespace) ,如果輸入為 null 則返回 null
?? 下面是示例(注意和 trim() 的區別):
????? StringUtils.strip(null) = null
????? StringUtils.strip("") = ""
????? StringUtils.strip(" ") = ""
????? StringUtils.strip("???? \b \t \n \f \r??? ") = "\b"
????? StringUtils.strip("???? \n\tss?? \b") = "ss?? \b"
????? StringUtils.strip(" d?? d dd???? ") = "d?? d dd"
????? StringUtils.strip("dd???? ") = "dd"
????? StringUtils.strip("???? dd?????? ") = "dd"

9. public static String stripToNull(String str)
?? 去掉字符串兩端的空白符(whitespace) ,如果變為 null 或"",則返回 null
?? 下面是示例(注意和 trimToNull() 的區別):
????? StringUtils.stripToNull(null) = null
????? StringUtils.stripToNull("") = null
????? StringUtils.stripToNull(" ") = null
????? StringUtils.stripToNull("???? \b \t \n \f \r??? ") = "\b"
????? StringUtils.stripToNull("???? \n\tss?? \b") = "ss?? \b"
????? StringUtils.stripToNull(" d?? d dd???? ") = "d?? d dd"
????? StringUtils.stripToNull("dd???? ") = "dd"
????? StringUtils.stripToNull("???? dd?????? ") = "dd"

10. public static String stripToEmpty(String str)
??? 去掉字符串兩端的空白符(whitespace) ,如果變為 null"" ,則返回""
??? 下面是示例(注意和 trimToEmpty() 的區別):
????? StringUtils.stripToNull(null) = ""
????? StringUtils.stripToNull("") = ""
????? StringUtils.stripToNull(" ") = ""
????? StringUtils.stripToNull("???? \b \t \n \f \r??? ") = "\b"
????? StringUtils.stripToNull("???? \n\tss?? \b") = "ss?? \b"
????? StringUtils.stripToNull(" d?? d dd???? ") = "d?? d dd"
????? StringUtils.stripToNull("dd???? ") = "dd"
????? StringUtils.stripToNull("???? dd?????? ") = "dd"

以下方法只介紹其功能,不再舉例:
11. public static String strip(String str, String stripChars)
?? 去掉 str 兩端的在 stripChars 中的字符。
?? 如果 strnull 或等于"" ,則返回它本身;
?? 如果 stripCharsnull"" ,則返回 strip(String str)

12. public static String stripStart(String str, String stripChars)
??? 和11相似,去掉 str 前端的在 stripChars 中的字符。

13. public static String stripEnd(String str, String stripChars)
??? 和11相似,去掉 str 末端的在 stripChars 中的字符。

14. public static String[] stripAll(String[] strs)
??? 對字符串數組中的每個字符串進行 strip(String str) ,然后返回。
??? 如果 strsnullstrs 長度為0,則返回 strs 本身

15. public static String[] stripAll(String[] strs, String stripChars)
??? 對字符串數組中的每個字符串進行 strip(String str, String stripChars) ,然后返回。
??? 如果 strs nullstrs 長度為0,則返回 strs 本身

16. public static boolean equals(String str1, String str2)
??? 比較兩個字符串是否相等,如果兩個均為空則也認為相等。

17. public static boolean equalsIgnoreCase(String str1, String str2)
??? 比較兩個字符串是否相等,不區分大小寫,如果兩個均為空則也認為相等。

18. public static int indexOf(String str, char searchChar)
??? 返回字符 searchChar 在字符串 str 中第一次出現的位置。
??? 如果 searchChar 沒有在 str 中出現則返回-1,
??? 如果 strnull"" ,則也返回-1

19. public static int indexOf(String str, char searchChar, int startPos)
??? 返回字符 searchCharstartPos 開始在字符串 str 中第一次出現的位置。
??? 如果從 startPos 開始 searchChar 沒有在 str 中出現則返回-1,
??? 如果 strnull"" ,則也返回-1

20. public static int indexOf(String str, String searchStr)
??? 返回字符串 searchStr 在字符串 str 中第一次出現的位置。
??? 如果 strnullsearchStrnull 則返回-1,
??? 如果 searchStr"" ,且 str 為不為 null ,則返回0,
??? 如果 searchStr 不在 str 中,則返回-1

21. public static int ordinalIndexOf(String str, String searchStr, int ordinal)
??? 返回字符串 searchStr 在字符串 str 中第 ordinal 次出現的位置。
??? 如果 str=nullsearchStr=nullordinal<=0 則返回-1
??? 舉例(*代表任意字符串):
????? StringUtils.ordinalIndexOf(null, *, *) = -1
????? StringUtils.ordinalIndexOf(*, null, *) = -1
????? StringUtils.ordinalIndexOf("", "", *) = 0
????? StringUtils.ordinalIndexOf("aabaabaa", "a", 1) = 0
????? StringUtils.ordinalIndexOf("aabaabaa", "a", 2) = 1
????? StringUtils.ordinalIndexOf("aabaabaa", "b", 1) = 2
????? StringUtils.ordinalIndexOf("aabaabaa", "b", 2) = 5
????? StringUtils.ordinalIndexOf("aabaabaa", "ab", 1) = 1
????? StringUtils.ordinalIndexOf("aabaabaa", "ab", 2) = 4
????? StringUtils.ordinalIndexOf("aabaabaa", "bc", 1) = -1
????? StringUtils.ordinalIndexOf("aabaabaa", "", 1) = 0
????? StringUtils.ordinalIndexOf("aabaabaa", "", 2) = 0

22. public static int indexOf(String str, String searchStr, int startPos)
??? 返回字符串 searchStrstartPos 開始在字符串 str 中第一次出現的位置。
??? 舉例(*代表任意字符串):
????? StringUtils.indexOf(null, *, *) = -1
????? StringUtils.indexOf(*, null, *) = -1
????? StringUtils.indexOf("", "", 0) = 0
????? StringUtils.indexOf("aabaabaa", "a", 0) = 0
????? StringUtils.indexOf("aabaabaa", "b", 0) = 2
????? StringUtils.indexOf("aabaabaa", "ab", 0) = 1
????? StringUtils.indexOf("aabaabaa", "b", 3) = 5
????? StringUtils.indexOf("aabaabaa", "b", 9) = -1
????? StringUtils.indexOf("aabaabaa", "b", -1) = 2
????? StringUtils.indexOf("aabaabaa", "", 2) = 2
????? StringUtils.indexOf("abc", "", 9) = 3

23. public static int lastIndexOf(String str, char searchChar)

??? 基本原理同18

24. public static int lastIndexOf(String str, char searchChar, int startPos)
??? 基本原理同19

25. public static int lastIndexOf(String str, String searchStr)
??? 基本原理同20

26. public static int lastIndexOf(String str, String searchStr, int startPos)
??? 基本原理同22

另附:

Stringsplit(String regex) ? 方法的用法
如果我們需要把某個字符串拆分為字符串數組,則通常用 split(String regex) 來實現。

例如:

Java代碼 復制代碼
  1. String?str?=?"aa,bb,cc,dd";??? ??
  2. String[]?strArray?=?str.split(",");???? ??
  3. System.out.println(strArray.length);??? ??
  4. ??for?(int?i?=?0;?i?<?strArray.length;?i++)?{??? ??
  5. ???????System.out.println(strArray[i]);??? ??
  6. }??

結果為:
4
aa
bb
cc
dd


如果,
String str = "aa.bb.cc.dd";
String[] strArray = str.split(".");


則結果為:0

為什么結果不是我們所想的呢,原因是參數 String regex 是正則表達式 (regular expression) 而不是普通字符串,而 "." 在正則表達式中有特殊含義,表示匹配所有單個字符。如果要那樣拆分,我們必須給 "." 進行轉義,String[] strArray = str.split(".") 修改為 String[] strArray = str.split("\\.") 即可。
另外有關 StringUtils 的詳細 API 請參見官方網站: http://commons.apache.org/lang/api/org/apache/commons/lang/StringUtils.html

?

轉載于:https://www.cnblogs.com/opaljc/archive/2010/02/02/1662104.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/248252.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/248252.shtml
英文地址,請注明出處:http://en.pswp.cn/news/248252.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

struts2+extjs文件上傳完整實現(攻克了上傳中的各種問題)

版權聲明&#xff1a;本文為博主原創文章。未經博主同意不得轉載。 https://blog.csdn.net/shanhuhau/article/details/28617999 首先須要引入上傳控件 <script type"text/javascript" src"<%basePath%>/js/ext/examples/ux/fileuploadfield/FileUploa…

放大鏡制作(1)

放大鏡制作 <div class"box" id"box"><!--左側的盒子--><div class"small"><!--圖片--><img src"images/big.jpg" width"350" class"aaa" alt""/><!--黃色小盒子--&…

.NET Framework 2.0 組件和非托管代碼與交互操作詳解(轉)

.NET Framework 將促進與 COM 組件、COM 服務、外部類型庫和許多操作系統服務的交互操作。在托管和非托管對象模型之間&#xff0c;數據類型、方法簽名和錯誤處理機制都存在差異。為了簡化 .NET Framework 組件和非托管代碼之間的互用并便于進行移植&#xff0c;公共語言運行時…

git 刪除遠程分支和本地分支

刪除遠程分支和本地分支 https://www.cnblogs.com/luosongchao/p/3408365.html 將遠程git倉庫里的指定分支拉取到本地&#xff08;本地不存在的分支&#xff09; https://www.cnblogs.com/hamsterPP/p/6810831.html 轉載于:https://www.cnblogs.com/mafeng/p/10619419.html

從零開始實現ASP.NET Core MVC的插件式開發(四) - 插件安裝

標題&#xff1a;從零開始實現ASP.NET Core MVC的插件式開發(四) - 插件安裝 作者&#xff1a;Lamond Lu 地址&#xff1a;https://www.cnblogs.com/lwqlun/p/11343141.html 源代碼&#xff1a;https://github.com/lamondlu/Mystique 前情回顧 從零開始實現ASP.NET Core MVC的插…

立體導航翻轉案例

<div class"box"><!-- 立方體 --><ul><li><img src"img1/1.jpg" alt""></li><li><img src"img1/2.jpg" alt""></li><li><img src"img1/3.jpg" a…

Uncontrolled memory mapping in camera driver (CVE-2013-2595)

版權聲明&#xff1a;本文為博主原創文章&#xff0c;未經博主同意不得轉載。https://blog.csdn.net/hu3167343/article/details/34434235 /* 本文章由 莫灰灰 編寫&#xff0c;轉載請注明出處。 作者&#xff1a;莫灰灰 郵箱&#xff1a; minzhenfei163.com */ 1漏洞描寫…

表格隔行變色

<body><table border"0" align"center" cellspacing"1" cellpadding"0"><caption>恭喜發財</caption><thead><tr><th>代碼</th><th>名稱</th><th>最新公布凈值<…

啟動Cognos時報0106錯誤

1. 問題描述 啟動Cognos失敗&#xff0c;報錯代碼為0106。 2. 問題分析 是jdk版本不兼容。 3. 解決方案 方案一&#xff1a;更換jdk1.6&#xff0c;可以使用免安裝版&#xff0c;不需要卸載原有的jdk將java_home的路徑替換成jdk1.6的路徑。 方案二&#xff1a;使用Cognos自帶jd…

項目管理的測試版發布

最近有時間將以前沒有寫完的項目管理程序進一步完善&#xff0c;加入了項目任務之間的關連。功能&#xff1a;1、任務的關連Start to finishStart to startFinish to startFinish to finish2、任務關連表環路檢測3、采用MVC模式進行開發4、自動導出XML5、雙擊連接線可以設置、刪…

劍指offer.機器人的運動范圍

地上有一個 m 行和 n 列的方格&#xff0c;橫縱坐標范圍分別是 0~m?1 和 0~~n?1。一個機器人從坐標0,0的格子開始移動&#xff0c;每一次只能向左&#xff0c;右&#xff0c;上&#xff0c;下四個方向移動一格。但是不能進入行坐標和列坐標的數位之和大于 kk 的格子。請問…

Tab欄切換布局分析

<body><div class"tab"><div class"tab_list"><ul><li class"current">商品介紹</li><li>規格與包裝</li><li>售后包裝</li><li>商品評價(50000)</li><li>手機社…

CLR基礎,CLR運行過程,使用dos命令創建、編譯、運行C#文件,查看IL代碼

CLR是Common Language Runtime的縮寫&#xff0c;是.NET程序集或可執行程序運行的一個虛擬環境。CLR用于管理托管代碼&#xff0c;但是它本身是由非托管代碼編寫的&#xff0c;并不是一個包含了托管代碼的程序集&#xff0c;所以不能使用IL DASM進行查看&#xff0c;但CLR以dll…

表單的全選取消全選

<div class"wrap"><table border"1" cellspacing"0" cellpadding"0"><caption>恭喜發財</caption><thead><tr><th><input type"checkbox" id"j_cbAll" checked&quo…

VUE 數據綁定模塊渲染 computed(實現通過路由id 查詢數據json結構,對應的值來放在面包屑中)...

異步請求的值放在vuex中&#xff0c;然后頁面掛載該數據和渲染頁面 computed 計算屬性是基于它的依賴緩存的。計算屬性在它的相關依賴發生改變時會重新取值&#xff0c;所以當ajax請求回來的數據發生變化時&#xff0c;計算屬性的值會進行更新&#xff0c;相關的模板引用也會重…

ThinkJs筆記瑣碎

ThinkJs筆記瑣碎 記錄一些瑣碎的在使用ThinkJs遇到的問題 靜態資源訪問 ThinkJs默認production環境關閉對www下資源的相對路徑的訪問&#xff0c;官方建議通過nginx轉向的地址的絕對路徑訪問&#xff0c;想要在production環境訪問相對路徑的話需要到src/config/middleware.js里…

js(Dom+Bom)第二天(1)

JavaScript-DOM操作 核心知識點 className操作標簽樣式style屬性方式操作標簽樣式操作表單控件 學習目標 能夠通過className方式給標簽設置樣式能夠通過style方式給標簽設置樣式能夠獲取表單控件中的值 操作元素樣式 語法&#xff1a;1.dom.className 類名;2.dom.style.屬…

HDU 4339 Query

算法: 比賽時沒有想到好的算法&#xff0c;暴力是O&#xff08; Q * N &#xff09;肯定超時。 賽后&#xff0c;線段樹&#xff0c;樹狀數組&#xff0c;HASH都能AC&#xff0c;想了下&#xff0c;的確用樹狀數組 時間復雜度就可以優化到O&#xff08;Q * lgN * lgN) 2000msAC…

201904快速閱讀術

在看過了幾本數之后&#xff0c;發現原來培養讀書的習慣好像也不太難&#xff0c;“將讀書融入生活&#xff0c;框定讀書時間” 生活中&#xff0c;我確實也是這樣執行了。利用每天上下班的時間聽書&#xff0c;有些覺得可以讀快的書籍用了1.5倍速度在聽&#xff0c;難懂的部分…

js(Dom+Bom)第二天(2)

webAPI 00-操作圖片 知識點-獲取圖片src屬性 圖片對象.src ----> 獲取圖片路徑注意: 1. 獲取到的圖片路徑是一個絕對路徑知識點-動態的給圖片標簽設置路徑 圖片對象.src 圖片路徑;注意: 1.可以設置絕對路徑(不推薦) 2.可以設置相對路徑課堂案例-切換圖片案例 01-操作標…