StringUtil
StringUtils 方法的操作對(duì)象是 Java.lang.String 類型的對(duì)象,是 JDK 提供的 String 類型操作方法的補(bǔ)充,并且是 null 安全的(即如果輸入?yún)?shù) String 為 null 則不會(huì)拋出 NullPointerException ,而是做了相應(yīng)處理,例如,如果輸入為 null 則返回也是 null 等,具體可以查看源代碼)。
除了構(gòu)造器,StringUtils 中一共有130多個(gè)方法,并且都是 static 的,所以我們可以這樣調(diào)用 StringUtils.xxx()
springframework、netty等框架也有自定義的StringUtils,此處引入通用依賴實(shí)現(xiàn)StringUtils
<dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>2.6</version> </dependency>一些常用方法:
1. public static boolean isEmpty(String str)?
? ?判斷某字符串是否為空,為空的標(biāo)準(zhǔn)是 str==null 或 str.length()==0?
? ?下面是示例:
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)?
? ?判斷某字符串是否為空或長(zhǎng)度為0或由空白符(whitespace) 構(gòu)成
? ?下面是示例:
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank(" ? ? ? ?") = true
StringUtils.isBlank("\t \n \f \r") = true ? //對(duì)于制表符、換行符、換頁符和回車符
StringUtils.isBlank() ? //均識(shí)為空白符
StringUtils.isBlank("\b") = false ? //"\b"為單詞邊界符
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false
4. public static boolean isNotBlank(String str)?
? ?判斷某字符串是否不為空且長(zhǎng)度不為0且不由空白符(whitespace) 構(gòu)成,等于 !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) ,如果變?yōu)?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) ,如果變?yōu)?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() 的區(qū)別):
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) ,如果變?yōu)?null 或"",則返回 null?
? ?下面是示例(注意和 trimToNull() 的區(qū)別):
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) ,如果變?yōu)?null 或"" ,則返回""?
? ? 下面是示例(注意和 trimToEmpty() 的區(qū)別):
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 中的字符。
? ?如果 str 為 null 或等于"" ,則返回它本身;
? ?如果 stripChars 為 null 或"" ,則返回 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)?
? ? 對(duì)字符串?dāng)?shù)組中的每個(gè)字符串進(jìn)行 strip(String str) ,然后返回。
? ? 如果 strs 為 null 或 strs 長(zhǎng)度為0,則返回 strs 本身
15. public static String[] stripAll(String[] strs, String stripChars)?
? ? 對(duì)字符串?dāng)?shù)組中的每個(gè)字符串進(jìn)行 strip(String str, String stripChars) ,然后返回。
? ? 如果 strs 為 null 或 strs 長(zhǎng)度為0,則返回 strs 本身
16. public static boolean equals(String str1, String str2)?
? ? 比較兩個(gè)字符串是否相等,如果兩個(gè)均為空則也認(rèn)為相等。
17. public static boolean equalsIgnoreCase(String str1, String str2)?
? ? 比較兩個(gè)字符串是否相等,不區(qū)分大小寫,如果兩個(gè)均為空則也認(rèn)為相等。
18. public static int indexOf(String str, char searchChar)?
? ? 返回字符 searchChar 在字符串 str 中第一次出現(xiàn)的位置。
? ? 如果 searchChar 沒有在 str 中出現(xiàn)則返回-1,
? ? 如果 str 為 null 或 "" ,則也返回-1
19. public static int indexOf(String str, char searchChar, int startPos)?
? ? 返回字符 searchChar 從 startPos 開始在字符串 str 中第一次出現(xiàn)的位置。
? ? 如果從 startPos 開始 searchChar 沒有在 str 中出現(xiàn)則返回-1,
? ? 如果 str 為 null 或 "" ,則也返回-1
20. public static int indexOf(String str, String searchStr)?
? ? 返回字符串 searchStr 在字符串 str 中第一次出現(xiàn)的位置。
? ? 如果 str 為 null 或 searchStr 為 null 則返回-1,
? ? 如果 searchStr 為 "" ,且 str 為不為 null ,則返回0,
? ? 如果 searchStr 不在 str 中,則返回-1
21. public static int ordinalIndexOf(String str, String searchStr, int ordinal)?
? ? 返回字符串 searchStr 在字符串 str 中第 ordinal 次出現(xiàn)的位置。
? ? 如果 str=null 或 searchStr=null 或 ordinal<=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)?
? ? 返回字符串 searchStr 從 startPos 開始在字符串 str 中第一次出現(xiàn)的位置。
? ? 舉例(*代表任意字符串):
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)
————————————————
版權(quán)聲明:本文為CSDN博主「命中的緣分」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_42290280/article/details/82591161
總結(jié)
以上是生活随笔為你收集整理的StringUtil的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 请说说接口和抽象类的区别?
- 下一篇: Socketpair 简介