StringUtils 方法的操作對象是 Java.lang.String 類型的對象,是 JDK 提供的 String 類型操作方法的補充,並且是 null 安全的(即如果輸入參數 String 爲 null 則不會拋出 NullPointerException ,而是做了相應處理,例如,如果輸入爲 null 則返回也是 null 等,具體可以查看源代碼)。
除了構造器,StringUtils 中一共有130多個方法,並且都是 static 的,所以我們可以這樣調用 StringUtils.xxx()
下面分別對一些常用方法做簡要介紹:
- public static boolean isEmpty(String str)
判斷某字符串是否爲空,爲空的標準是 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
- 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
-
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 -
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 -
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” -
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” -
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” -
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” -
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” -
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 中的字符。
如果 str 爲 null 或等於"" ,則返回它本身;
如果 stripChars 爲 null 或"" ,則返回 strip(String str) 。
-
public static String stripStart(String str, String stripChars)
和11相似,去掉 str 前端的在 stripChars 中的字符。 -
public static String stripEnd(String str, String stripChars)
和11相似,去掉 str 末端的在 stripChars 中的字符。 -
public static String[] stripAll(String[] strs)
對字符串數組中的每個字符串進行 strip(String str) ,然後返回。
如果 strs 爲 null 或 strs 長度爲0,則返回 strs 本身 -
public static String[] stripAll(String[] strs, String stripChars)
對字符串數組中的每個字符串進行 strip(String str, String stripChars) ,然後返回。
如果 strs 爲 null 或 strs 長度爲0,則返回 strs 本身 -
public static boolean equals(String str1, String str2)
比較兩個字符串是否相等,如果兩個均爲空則也認爲相等。 -
public static boolean equalsIgnoreCase(String str1, String str2)
比較兩個字符串是否相等,不區分大小寫,如果兩個均爲空則也認爲相等。 -
public static int indexOf(String str, char searchChar)
返回字符 searchChar 在字符串 str 中第一次出現的位置。
如果 searchChar 沒有在 str 中出現則返回-1,
如果 str 爲 null 或 “” ,則也返回-1 -
public static int indexOf(String str, char searchChar, int startPos)
返回字符 searchChar 從 startPos 開始在字符串 str 中第一次出現的位置。
如果從 startPos 開始 searchChar 沒有在 str 中出現則返回-1,
如果 str 爲 null 或 “” ,則也返回-1 -
public static int indexOf(String str, String searchStr)
返回字符串 searchStr 在字符串 str 中第一次出現的位置。
如果 str 爲 null 或 searchStr 爲 null 則返回-1,
如果 searchStr 爲 “” ,且 str 爲不爲 null ,則返回0,
如果 searchStr 不在 str 中,則返回-1 -
public static int ordinalIndexOf(String str, String searchStr, int ordinal)
返回字符串 searchStr 在字符串 str 中第 ordinal 次出現的位置。
如果 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 -
public static int indexOf(String str, String searchStr, int startPos)
返回字符串 searchStr 從 startPos 開始在字符串 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 -
public static int lastIndexOf(String str, char searchChar)
基本原理同18 -
public static int lastIndexOf(String str, char searchChar, int startPos)
基本原理同19 -
public static int lastIndexOf(String str, String searchStr)
基本原理同20 -
public static int lastIndexOf(String str, String searchStr, int startPos)
原文鏈接:https://blog.csdn.net/weixin_42290280/article/details/82591161