天天看點

StringUtils方法全集介紹

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

除了構造器,StringUtils中一共有130多個方法,并且都是static的,

是以我們可以這樣調用StringUtils.xxx()。

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

1. public static boolean isEmpty(String str)

判斷某字元串是否為空,為空的标準是str == null 或 str.length() == 0

下面是示例:

StringUtils.isEmpty(null)          = true

StringUtils.isEmpty("")       = true

StringUtils.isEmpty(" ")      = false

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("/b")               = false

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中的字元。

如果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)

對字元串數組中的每個字元串進行strip(String str),然後傳回。

如果strs為null或strs長度為0,則傳回strs本身

15.public static String[] stripAll(String[] strs, String stripChars)

對字元串數組中的每個字元串進行strip(String str, String stripChars),然後傳回。

如果strs為null或strs長度為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,

如果str為null或"",則也傳回-1

19.public static int indexOf(String str, char searchChar, int startPos)

傳回字元searchChar從startPos開始在字元串str中第一次出現的位置。

如果從startPos開始searchChar沒有在str中出現則傳回-1,

如果str為null或"",則也傳回-1

20.public static int indexOf(String str, String searchStr)

傳回字元串searchStr在字元串str中第一次出現的位置。

如果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次出現的位置。

如果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中第一次出現的位置。

舉例(*代表任意字元串):

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。

27.public static boolean contains(String str, char searchChar)

判斷字元串str中是否包含字元searchChar。

如果str為null或"",傳回false;

如果searchChar不在str中,傳回false。

28.public static boolean contains(String str, String searchStr)

判斷字元串str是否包含字元串searchStr。

如果str為null或searchStr為null,傳回false;

如果str為"",并且searchStr為"",傳回true

舉例:

StringUtils.contains("", "")       = true

StringUtils.contains("dfg", "")    = true

StringUtils.contains("dfg", "d")   = true

StringUtils.contains("dfg", "gz") = false

29.public static boolean containsIgnoreCase(String str, String searchStr)

判斷字元串str是否包含字元串searchStr,不區分大小寫。

和28類似。

30.public static int indexOfAny(String str, char[] searchChars)

找出字元數組searchChars中的字元第一次出現在字元串str中的位置。

如果字元數組中的字元都不在字元串中,則傳回-1

如果字元串為null或"",則傳回-1

舉例(*表示任意):

StringUtils.indexOfAny(null, *)                 = -1

StringUtils.indexOfAny("", *)                   = -1

StringUtils.indexOfAny(*, [])                   = -1

StringUtils.indexOfAny("asdf", ['a','f',' '])   = 0

StringUtils.indexOfAny("bs df", ['a','f',' ']) = 2

StringUtils.indexOfAny("bsdf", ['a','f',' '])   = 3

StringUtils.indexOfAny("bbeegg", ['a','f',' ']) = -1

31.public static int indexOfAny(String str, String searchChars)

找出字元串searchChars中的字元第一次出現在字元串str中的位置。

如果字元串searchChars中的字元都不在字元串str中,則傳回-1

如果searchChars或str為null或為"",則傳回-1

舉例(*表示任意):

StringUtils.indexOfAny(null, *)         = -1

StringUtils.indexOfAny("", *)           = -1

StringUtils.indexOfAny(*, null)         = -1

StringUtils.indexOfAny(*, "")           = -1

StringUtils.indexOfAny("asdf", "af ")   = 0

StringUtils.indexOfAny("bs df", "af ") = 2

StringUtils.indexOfAny("bsdf", "af ")   = 3

StringUtils.indexOfAny("bbeegg", "af ") = -1

32.public static int indexOfAnyBut(String str, char[] searchChars)

找出字元串str中不在字元數組searchChars中的第一個字元的位置。

如果字元串中的所有字元都在字元數組中,則傳回-1

如果字元串為null或"",則傳回-1

舉例(*表示任意):

StringUtils.indexOfAnyBut(null, *)                 = -1

StringUtils.indexOfAnyBut("", *)                   = -1

StringUtils.indexOfAnyBut(*, [])                   = -1

StringUtils.indexOfAnyBut("asdf", ['a','f',' '])   = 1

StringUtils.indexOfAnyBut("bs df", ['a','f',' ']) = 0

StringUtils.indexOfAnyBut(" aaf", ['a','f',' '])   = -1

StringUtils.indexOfAnyBut("bbeegg", ['a','f',' ']) = 0

33.public static int indexOfAnyBut(String str, String searchChars)

找出字元串str中不在字元串searchChars中的第一個字元的位置。

如果字元串str中的所有字元都在字元串searchChars中,則傳回-1

如果字元串str或searchChars為null或"",則傳回-1

舉例(*表示任意):

StringUtils.indexOfAnyBut(null, *)         = -1

StringUtils.indexOfAnyBut("", *)           = -1

StringUtils.indexOfAnyBut(*, null)         = -1

StringUtils.indexOfAnyBut(*, "")           = -1

StringUtils.indexOfAnyBut("asdf", "af ")   = 1

StringUtils.indexOfAnyBut("bs df", "af ") = 0

StringUtils.indexOfAnyBut(" aaf", "af ")   = -1

StringUtils.indexOfAnyBut("bbeegg", "af ") = 0

34.public static boolean containsOnly(String str, char[] valid)

判斷是否字元串str僅包含字元數組valid中的字元,即字元串中的字元是否都在字元數組中。

如果str為null,則傳回false;如果str為"",則傳回true

舉例(*表示任意):

StringUtils.containsOnly(null, *))              = false

StringUtils.containsOnly("", *))                = true

StringUtils.containsOnly("afaf", ['a','f',' ']))= true

StringUtils.containsOnly("af a", ['a','f',' ']))= true

StringUtils.containsOnly("a", ['a','f',' ']))   = true

StringUtils.containsOnly("afg", ['a','f',' '])) = false

StringUtils.containsOnly("bbeegg", []))         = false

35.public static boolean containsOnly(String str, String validChars)

判斷是否字元串str僅包含字元串validChars中的字元,

即字元串str中的字元是否都在字元串validChars中。

和34類似,舉例(*表示任意):

StringUtils.containsOnly(null, *)       = false

StringUtils.containsOnly(*, null)       = false

StringUtils.containsOnly("", "")        = true

StringUtils.containsOnly("", "a")       = true

StringUtils.containsOnly("afaf", "af ") = true

StringUtils.containsOnly("af a", "af ") = true

StringUtils.containsOnly("afg", "af ") = false

StringUtils.containsOnly("afg", "")     = false

36.public static boolean containsNone(String str, char[] invalidChars)

判斷是否字元串str不包含字元數組invalidChars中的字元,如果含有則傳回false。

舉例(*表示任意):

StringUtils.containsNone(null, *)               = true

StringUtils.containsNone(*, [])                 = true

StringUtils.containsNone("", *)                 = true

StringUtils.containsNone("ab", [])              = true

StringUtils.containsNone("b", ['a','f',' '])    = true

StringUtils.containsNone("bcd", ['a','f',' ']) = true

StringUtils.containsNone("abc", ['a','f',' ']) = false

StringUtils.containsNone(" ", ['a','f',' '])    = false

37.public static boolean containsNone(String str, String invalidChars)

判斷是否字元串str不包含字元串invalidChars中的字元,如果含有則傳回false。

舉例(*表示任意):

StringUtils.containsNone(null, *)       = true

StringUtils.containsNone(*, null)       = true

StringUtils.containsNone("", *)         = true

StringUtils.containsNone("ab", "")      = true

StringUtils.containsNone("b", "af ")    = true

StringUtils.containsNone("bcd", "af ") = true

StringUtils.containsNone("abc", "af ") = false

StringUtils.containsNone(" ", "af ")    = false

38.public static int indexOfAny(String str, String[] searchStrs)

找出字元串數組searchStrs中的字元串第一次出現在字元串str中的位置。

如果數組中沒有字元串在str中,則傳回-1

如果數組為null或長度為0,則傳回-1

舉例(*表示任意):

StringUtils.indexOfAny(null, *)                     = -1

StringUtils.indexOfAny(*, null)                     = -1

StringUtils.indexOfAny(*, [])                       = -1

StringUtils.indexOfAny("", [""])                    = 0

StringUtils.indexOfAny("bbeegg", ["as","df","yy"]) = -1

StringUtils.indexOfAny("asdfgh", ["as","df","yy"]) = 0

StringUtils.indexOfAny("dfasgh", ["as","df","yy"]) = 0

StringUtils.indexOfAny("ghasdf", ["as","df","yy"]) = 2

39.public static int lastIndexOfAny(String str, String[] searchStrs)

找出字元串數組searchStrs中的字元串最後一次出現在字元串str中的位置。

如果數組中沒有字元串在str中,則傳回-1

如果數組為null或長度為0,則傳回-1

舉例(*表示任意):

StringUtils.lastIndexOfAny(null, *)                     = -1

StringUtils.lastIndexOfAny(*, null)                     = -1

StringUtils.lastIndexOfAny(*, [])                       = -1

StringUtils.lastIndexOfAny("", [""])                    = 0

StringUtils.lastIndexOfAny("bbeegg", ["as","df","yy"]) = -1

StringUtils.lastIndexOfAny("asdfgh", ["as","df","yy"]) = 2

StringUtils.lastIndexOfAny("dfghjk", ["as","df","yy"]) = 0

StringUtils.lastIndexOfAny("ghasdf", ["as","df","yy"]) = 4

StringUtils.lastIndexOfAny("ghasdf", ["as","df",""])    = 6

40.public static String substring(String str, int start)

得到字元串str的子串。

如果start小于0,位置是從後往前數的第|start|個

如果str為null或"",則傳回它本身

舉例(*表示任意):

StringUtils.substring(null, *)     = null

StringUtils.substring("", *)       = ""

StringUtils.substring("asdf", 0)) = "asdf"

StringUtils.substring("asdf", 1)) = "sdf"

StringUtils.substring("asdf", 3)) = "f"

StringUtils.substring("asdf",

StringUtils方法全集介紹

) = ""

StringUtils.substring("asdf", -1)) = "f"

StringUtils.substring("asdf", -3)) = "sdf"

StringUtils.substring("asdf", -8)) = "asdf"

41.public static String substring(String str, int start, int end)

得到字元串str的子串。

如果start小于0,位置是從後往前數的第|start|個,

如果end小于0,位置是從後往前數的第|end|個,

如果str為null或"",則傳回它本身

舉例(*表示任意):

StringUtils.substring(null, *, *)     = null

StringUtils.substring("", * , *)     = "";

StringUtils.substring("asdf", 0, 2)   = "as"

StringUtils.substring("asdf", 0, -1) = "asd"

StringUtils.substring("asdf", 2, -1) = "d"

StringUtils.substring("asdf", 2, -2) = ""

StringUtils.substring("asdf", 3, 2)   = ""

StringUtils.substring("asdf", 1,

StringUtils方法全集介紹

   = "sdf"

StringUtils.substring("asdf", -1, -3) = ""

StringUtils.substring("asdf", -3, -1) = "sd"

StringUtils.substring("asdf", -8, 5) = "asdf"

42.public static String left(String str, int len)

得到字元串str從左邊數len長度的子串。

如果str為null或為"",則傳回它本身

如果len小于0,則傳回""

舉例(*表示任意):

StringUtils.left(null, *)    = null

StringUtils.left(*, -ve)     = ""

StringUtils.left("", *)      = ""

StringUtils.left("asdf", 0) = ""

StringUtils.left("asdf", 2) = "as"

StringUtils.left("asdf",

StringUtils方法全集介紹

= "asdf"

43.public static String right(String str, int len)

得到字元串str從右邊數len長度的子串。

如果str為null或為"",則傳回它本身

如果len小于0,則傳回""

舉例(*表示任意):

StringUtils.right(null, *)    = null

StringUtils.right(*, -ve)     = ""

StringUtils.right("", *)      = ""

StringUtils.right("asdf", 0) = ""

StringUtils.right("asdf", 2) = "df"

StringUtils.right("asdf",

StringUtils方法全集介紹

= "asdf"

44.public static String mid(String str, int pos, int len)

得到字元串str從pos開始len長度的子串。

如果str為null或為"",則傳回它本身

如果len小于0或pos大于srt的長度,則傳回""

如果pos小于0,則pos設為0

舉例(*表示任意):

StringUtils.mid(null, *, *)     = null

StringUtils.mid("", *, *)       = ""

StringUtils.mid(*, *, -ve)      = ""

StringUtils.mid("asdf", 0, 4)) = "asdf"

StringUtils.mid("asdf", 2, 2))    = "df"

StringUtils.mid("asdf", 2, 5))    = "df"

StringUtils.mid("asdf", -2, 1)) = "a"

StringUtils.mid("asdf", 0, -1))    = ""

45.public static String substringBefore(String str, String separator)

得到字元串str的在字元串separator出現前的字串,且separator不包括在内。

如果str為null或為"",則傳回它本身

如果separator為null,則傳回str本身

舉例(*表示任意):

StringUtils.substringBefore(null, *)            = null

StringUtils.substringBefore("", *)              = ""

StringUtils.substringBefore("asdfg", null))     = "asdfg"

StringUtils.substringBefore("asdfg", "a"))      = ""

StringUtils.substringBefore("asdfg", "sd"))     = "a"

StringUtils.substringBefore("asdfsag", "sa"))   = "asdf"

StringUtils.substringBefore("asdfg", "h"))      = "asdfg"

StringUtils.substringBefore("asdfg", ""))       = ""

StringUtils.substringBefore("asdfg", "dfgh"))   = "asdfg"

StringUtils.substringBefore("asdfg", "dfg"))    = "as"

StringUtils.substringBefore("abbbabbba", "bb")) = "a"

46.public static String substringAfter(String str, String separator)

得到字元串str的在字元串separator出現後的字串,且separator不包括在内。

如果str為null或為"",則傳回它本身

如果separator為null,則傳回""

舉例(*表示任意):

StringUtils.substringAfter(null, *)           = null

StringUtils.substringAfter("", *)             = ""

StringUtils.substringAfter(*, null)           = ""

StringUtils.substringAfter("asdfg", "a"))     = "sdfg"

StringUtils.substringAfter("asdfg", "sd"))        =    "fg"

StringUtils.substringAfter("asdfsag", "sa"))    =    "g"

StringUtils.substringAfter("asdfg", "h"))            =    ""

StringUtils.substringAfter("asdfg", ""))            =    "asdfg"

StringUtils.substringAfter("asdfg", "dfgh"))    =    ""

StringUtils.substringAfter("asdfg", "dfg"))        =    ""

StringUtils.substringAfter("abbbabbba", "bb"))=    "babbba"

47.public static String substringBeforeLast(String str, String separator)

和45類似,得到字元串str的在字元串separator最後一次出現前的字串。

這裡不再舉例。

48.public static String substringAfterLast(String str, String separator)

和46類似,得到字元串str的在字元串separator最後一次出現後的字串。

這裡不再舉例。

49.public static String substringBetween(String str, String tag)

得到str中的在兩個字元串tag中間的字元串,即str中的tag所夾的串。

如果str為null或tag為null,傳回null

舉例(*表示任意):

StringUtils.substringBetween(null, *)               = null

StringUtils.substringBetween(*, null)               = null

StringUtils.substringBetween("", "")                = ""

StringUtils.substringBetween("", "a"))              = null

StringUtils.substringBetween("asdfdf", "df"))            =        ""

StringUtils.substringBetween("asdfas", "as"))                = "df"

StringUtils.substringBetween("dfasdfasdfas", "df"))    = "as"

StringUtils.substringBetween("dfasdfasdfas", "as"))    = "df"

StringUtils.substringBetween("dfasdfasgdf", "df")) = "as"

50.public static String substringBetween(String str, String open, String close)

得到str中的在兩個字元串open和close中間的字元串,即open和close所夾的串。

如果str為null或open為null或close為null,傳回null

舉例(*表示任意):

StringUtils.substringBetween(null, *, *)             = null

StringUtils.substringBetween(*, null, *)             = null

StringUtils.substringBetween(*, *, null)             = null

StringUtils.substringBetween("", "", "")             = ""

StringUtils.substringBetween("", "", "]")            = null

StringUtils.substringBetween("", "[", "]")           = null

StringUtils.substringBetween("[]", "[","]"))         = ""

StringUtils.substringBetween("a[sd]f", "[","]"))     = "sd"

StringUtils.substringBetween("a[sd]f[gh]", "[","]")) = "sd"

StringUtils.substringBetween("a[sd]f", "]","["))       = null

StringUtils.substringBetween("a[sd]f", "",""))            =    ""

51.public static String[] substringsBetween(String str, String open, String close)

得到str中的在兩個字元串open和close中間的字元串,即open和close所夾的串,

把所有符合的結果放在數組中傳回。

和50類似,但是傳回了所有的結果(50隻傳回了第一個比對的結果)。

這裡不再舉例。

52.public static String[] split(String str)

把字元串拆分成一個字元串數組,用空白符(whitespace)作為分隔符。

Whitespace是這樣定義的 {@link Character#isWhitespace(char)}

如果字元串為null,傳回null

如果字元串為"",傳回空數組{}

舉例(*表示任意):

StringUtils.split(null)                   = null

StringUtils.split("")                     = {}

StringUtils.split("as df    yy"))           = {"as","df","yy"}

StringUtils.split(" as df    yy "))          = {"as","df","yy"}

StringUtils.split("as/ndf/ryy"))          = {"as","df","yy"}

StringUtils.split("as/tdf/fyy"))          = {"as","df","yy"}

StringUtils.split("as       df /fyy"))   = {"as","df","yy"}

StringUtils.split("as/t /r df /f /n yy")) = {"as","df","yy"}

StringUtils.split("as"))                  = {"as"}

StringUtils.split(" as "))                = {"as"}

53.public static String[] split(String str, char separatorChar)

把字元串拆分成一個字元串數組,用指定的字元separatorChar作為分隔符。

如果字元串為null,傳回null

如果字元串為"",傳回空數組{}

舉例(*表示任意):

StringUtils.split(null, *)           = null

StringUtils.split("", *)             = {}

StringUtils.split("as df yy",' '))   = {"as","df","yy"}       

StringUtils.split(" as df yy ",' ')) = {"as","df","yy"}       

StringUtils.split("asodfoyy",'o'))   = {"as","df","yy"}       

StringUtils.split("as.df.yy",'.'))   = {"as","df","yy"}       

StringUtils.split("as/ndf/nyy",'/n'))= {"as","df","yy"}       

StringUtils.split("as",' '))         = {"as"}       

StringUtils.split(" as ",' '))       = {"as"}

54.public static String[] split(String str, String separatorChars)

把字元串拆分成一個字元串數組,用指定的字元串separatorChars作為分隔符。

如果字元串str為null,傳回null

如果字元串str為"",傳回空數組{}

如果separatorChars為null,則預設為空白符

和53類似。

舉例(*表示任意):

StringUtils.split("as /rdf /t yy",null)) = {"as","df","yy"}

StringUtils.split("as/ndf/fyy",null))     = {"as","df","yy"}

StringUtils.split("as",""))               = {"as"}

55.public static String[] split(String str, String separatorChars, int max)

把字元串拆分成一個字元串數組,用指定的字元串separatorChars作為分隔符,

數組的最大長度為max。

如果字元串str為null,傳回null

如果字元串str為"",傳回空數組{}

如果separatorChars為null,則預設為空白符

如果max小于等于0,認為是沒有限制

舉例(*表示任意):

StringUtils.split(null, *, *)              = null

StringUtils.split("", *, *)                = {}

StringUtils.split("as df yy",null,0))      = {"as","df","yy"}

StringUtils.split("as df yy"," ",0))       = {"as","df","yy"}

StringUtils.split("as.df.yy",".",-1))      = {"as","df","yy"}

StringUtils.split("as.df.yy",".",4))       = {"as","df","yy"}

StringUtils.split("as-!-df-!-yy","-!-",0)) = {"as","df","yy"}

StringUtils.split("as.df.yy",".",2))       = {"as","df.yy"}

StringUtils.split("as","",0))              = {"as"}

StringUtils.split("as","",2))              = {"as"}

56.public static String[] splitByWholeSeparator(String str, String separator)

個人認為和54功能一樣。差別有待發掘。

57.public static String[] splitByWholeSeparator( String str, String separator, int max )

個人認為和55功能一樣。差別有待發掘。

58.public static String[] splitPreserveAllTokens(String str)

把字元串str拆分成一個數組,用空白符(whitespace)作為分隔符,保留所有的辨別,

包括相鄰分隔符産生的空的辨別。它可作為StringTokenizer的一個替代。

Whitespace是這樣定義的{@link Character#isWhitespace(char)}。

舉例(*表示任意):

StringUtils.splitPreserveAllTokens(null))             = null

StringUtils.splitPreserveAllTokens(""))               = {}

StringUtils.splitPreserveAllTokens("as df gh jk"))    = {"as","df","gh","jk"}

StringUtils.splitPreserveAllTokens("as/ndf/rgh/fjk")) = {"as","df","gh","jk"}

StringUtils.splitPreserveAllTokens("as/tdf gh    jk"))   = {"as","df","gh","jk"}

StringUtils.splitPreserveAllTokens("as df gh"))      = {"as","","df","gh"}

StringUtils.splitPreserveAllTokens(" as   df "))     = {"","as","","","df","",""}

59.public static String[] splitPreserveAllTokens(String str, char separatorChar)

和58類似,隻是分隔符為字元separatorChar。

舉例(*表示任意):

StringUtils.splitPreserveAllTokens(null, *)            = null

StringUtils.splitPreserveAllTokens("", *)              = {}

StringUtils.splitPreserveAllTokens("as df gh jk",' ')) = {"as","df","gh","jk"}

StringUtils.splitPreserveAllTokens("as.df.gh.jk",'.')) = {"as","df","gh","jk"}

StringUtils.splitPreserveAllTokens("as..df.gh",'.'))   = {"as","","df","gh"}

StringUtils.splitPreserveAllTokens(",as,,,df,,",',')) = {"","as","","","df","",""}

StringUtils.splitPreserveAllTokens("as.df.gh",','))    = {"as.df.gh"}

60.public static String[] splitPreserveAllTokens(String str, String separatorChars)

和59類似,隻是分隔符為字元串separatorChars。

舉例(*表示任意):

StringUtils.splitPreserveAllTokens(null, *)               = null

StringUtils.splitPreserveAllTokens("", *)                 = {}

StringUtils.splitPreserveAllTokens("as df gh jk",null))   = {"as","df","gh","jk"}

StringUtils.splitPreserveAllTokens("as/ndf/rgh/fjk",null))= {"as","df","gh","jk"}

StringUtils.splitPreserveAllTokens("as df gh jk"," "))    = {"as","df","gh","jk"}

StringUtils.splitPreserveAllTokens("as.df.gh.jk","."))    = {"as","df","gh","jk"}

StringUtils.splitPreserveAllTokens("as..df.gh","."))      = {"as","","df","gh"}

StringUtils.splitPreserveAllTokens(",as,,,df,,",","))     = {"","as","","","df","",""}

StringUtils.splitPreserveAllTokens("as.df.gh",","))       = {"as.df.gh"}

StringUtils.splitPreserveAllTokens("as.df.gh",""))        = {"as.df.gh"}

61.public static String[] splitPreserveAllTokens(String str, String separatorChars, int max)

和上面幾個類似,隻是指定了數組的最大長度。

如果max為0或負數,則認為沒有限制。

這裡不再舉例。

62.public static String join(Object[] array)

把數組中的元素連接配接成一個字元串傳回。

舉例(*表示任意):

StringUtils.join(null)                        = null

StringUtils.join({})                          = ""

StringUtils.join({"as","df","gh","jk"}))      = "asdfghjk"

StringUtils.join({"as","","df","gh"}))        = "asdfgh"

StringUtils.join({"","as","","","df","",""})) = "asdf"

63.public static String join(Object[] array, char separator)

把數組中的元素連接配接成一個字元串傳回,把分隔符separator也加上。

舉例(*表示任意):

StringUtils.join(null, *)                        = null

StringUtils.join({}, *)                          = ""

StringUtils.join({null}, *)                      = ""

StringUtils.join({"as","df","gh","jk"},' '))     = "as df gh jk"

StringUtils.join({"as","df","gh","jk"},'.'))     = "as.df.gh.jk"

StringUtils.join({"as","","df","gh"},'.'))       = "as..df.gh"

StringUtils.join({"","as","","","df","",""},','))= ",as,,,df,,"

StringUtils.join({"","as","","","df","",""},' '))= " as   df "

StringUtils.join({"as.df.gh"},'.'))                 = "as.df.gh"

StringUtils.join({"as.df.gh"},' '))              = "as.df.gh"

64.public static String join(Object[] array, char separator, int startIndex, int endIndex)

把數組中的元素連接配接成一個字元串傳回,把分隔符separator也加上。

連接配接的開始位置為startIndex,結束位置為endIndex。

這裡不再舉例。

65.public static String join(Object[] array, String separator)

與63類似,這裡不再舉例。

66.public static String join(Object[] array, String separator, int startIndex, int endIndex)

與64類似,這裡不再舉例。

67.public static String deleteWhitespace(String str)

删除字元串中的所有空白符(whitespace),空白符是這樣定義的{@link Character#isWhitespace(char)}。

舉例(*表示任意):

StringUtils.deleteWhitespace(null)            = null

StringUtils.deleteWhitespace("")              = ""

StringUtils.deleteWhitespace("asd"))          = "asd",

StringUtils.deleteWhitespace("as df"))          =    "asdf"

StringUtils.deleteWhitespace("as/n/r/f/tdf"))    =    "asdf"

StringUtils.deleteWhitespace("as/bdf"))            =    "as/bdf"

StringUtils.deleteWhitespace(" as df "))        =    "asdf"

68.public static String removeStart(String str, String remove)

如果字元串str是以字元串remove開始,則去掉這個開始,然後傳回,否則傳回原來的串。

舉例(*表示任意):

StringUtils.removeStart(null, *)      = null

StringUtils.removeStart("", *)        = ""

StringUtils.removeStart(*, null)      = *

StringUtils.removeStart("asdf",""))   = "asdf"

StringUtils.removeStart("asdf","as"))    = "df"

StringUtils.removeStart("asdf","df"))    = "asdf"

StringUtils.removeStart("asdf","gh"))    = "asdf"

69.public static String removeEnd(String str, String remove)

如果字元串str是以字元串remove結尾,則去掉這個結尾,然後傳回,否則傳回原來的串。

這裡不再舉例。

70.public static String remove(String str, String remove)

去掉字元串str中所有包含remove的部分,然後傳回。

這裡不再舉例。

71.public static String remove(String str, char remove)

去掉字元串str中所有包含remove的部分,然後傳回。

這裡不再舉例。

72.public static String replaceOnce(String text, String repl, String with)

在字元串text中用with代替repl,僅一次。

這裡不再舉例。

73.public static String replace(String text, String repl, String with)

在字元串text中用with代替repl,替換所有。

這裡不再舉例。

74.public static String replace(String text, String repl, String with, int max)

在字元串text中用with代替repl,max為最大替換次數。

如果max小于0,則替換所有。

這裡不再舉例。

75. public static String replaceChars(String str, char searchChar, char replaceChar)

在字元串str中用字元replaceChar代替所有字元searchChar,

如果字元串為null或"",則傳回它本身。

這裡不再舉例。

76.public static String replaceChars(String str, String searchChars, String replaceChars)

用replaceChars代替str中的searchChars。

replaceChars的長度應該和searchChars的長度相等,

如果replaceChars的長度大于searchChars的長度,超過長度的字元将被忽略,

如果replaceChars的長度小于searchChars的長度,超過長度的字元将被删除。

舉例(*表示任意):

StringUtils.replaceChars(null, *, *)            = null

StringUtils.replaceChars("", *, *)              = ""

StringUtils.replaceChars("asdf", null, *)       = "asdf"

StringUtils.replaceChars("asdf", "", *)         = "asdf"

StringUtils.replaceChars("asdf","s",null))      = "adf"

StringUtils.replaceChars("asdf","s",""))            = "adf"

StringUtils.replaceChars("asdsfsg","s","y"))    = "aydyfyg"

StringUtils.replaceChars("asdf","sd","yy"))        =    "ayyf"

StringUtils.replaceChars("asdf","sd","yyy"))    =    "ayyf"

StringUtils.replaceChars("asssdf","s","yyy"))    =    "ayyydf"

StringUtils.replaceChars("asdf","sd","y"))        = "ayf"

StringUtils.replaceChars("assssddddf","sd","y"))= "ayyyyf"

77.public static String overlay(String str, String overlay, int start, int end)

用字元串overlay覆寫字元串str從start到end之間的串。

如果str為null,則傳回null

如果start或end小于0,則設為0

如果start大于end,則兩者交換

如果start或end大于str的長度,則認為等于str的長度

舉例(*表示任意):

StringUtils.overlay(null, *, *, *)        = null

StringUtils.overlay("","as",0,0))         = "as"

StringUtils.overlay("asdfgh","qq",2,5))        =    "asqqh"

StringUtils.overlay("asdfgh","qq",5,2))        =    "asqqh"

StringUtils.overlay("asdfgh","qq",-1,3))    =    "qqfgh"

StringUtils.overlay("asdfgh","qq",-1,-3))    =    "qqasdfgh"

StringUtils.overlay("asdfgh","qq",7,10))    =    "asdfghqq"

StringUtils.overlay("asdfgh","qq",0,8))        =    "qq"

StringUtils.overlay("asdfgh","qq",2,8))        =    "asqq"

StringUtils.overlay("asdfgh",null,2,5))        =    "ash"

StringUtils.overlay("asdfgh","",2,5))            =    "ash"

78.public static String chop(String str)

去掉字元串str的最後一個字元。

如果字元串以"/r/n"結尾,則去掉它們。

這裡不再舉例。

79.public static String repeat(String str, int repeat)

重複字元串repeat次,組合成一個新串傳回。

如果字元串str為null或"",則傳回它本身

如果repeat小于0,則傳回""

舉例(*表示任意):

StringUtils.repeat(null, *) = null

StringUtils.repeat("", *)   = ""

StringUtils.repeat("a", 3) = "aaa"

StringUtils.repeat("ab", 2) = "abab"

StringUtils.repeat("a", -2) = ""

80.public static String rightPad(String str, int size)

如果str為null,則傳回null

如果字元串長度小于size,則在右邊補空格使其長度等于size,然後傳回

如果字元串長度大于等于size,則傳回它本身

這裡不再舉例。

81.public static String rightPad(String str, int size, char padChar)

和80類似,隻是補的字元為padChar。

這裡不再舉例。

82.public static String rightPad(String str, int size, String padStr)

和80類似,隻是補的是字元串padStr。

舉例(*表示任意):

StringUtils.rightPad(null, *, *)      = null

StringUtils.rightPad("",0,""))        = ""

StringUtils.rightPad("",3,""))          =    "   "

StringUtils.rightPad("",3,"a"))            =    "aaa"

StringUtils.rightPad("",2,"as"))        =    "as"

StringUtils.rightPad("as",-1,"df"))        =    "as"

StringUtils.rightPad("as",0,"df"))        =    "as"

StringUtils.rightPad("as",3,"df"))        =    "asd"

StringUtils.rightPad("as",8,"df"))        =    "asdfdfdf"

StringUtils.rightPad("as",5,null))        =    "as   "

StringUtils.rightPad("as",5,""))            =    "as   "

83.public static String leftPad(String str, int size)

和80類似,隻是補左邊。

這裡不再舉例。

84.public static String leftPad(String str, int size, char padChar)

和81類似。

這裡不再舉例。

85.public static String leftPad(String str, int size, String padStr)

和82類似。

這裡不再舉例。

86.public static String center(String str, int size)

産生一個字元串傳回,該字元串長度等于size,str位于新串的中心,其他位置補空格。

如果str為null,則傳回null

如果size小于str的長度,則傳回str本身

舉例(*表示任意):

StringUtils.center(null, *)   = null

StringUtils.center("",1))     = " "

StringUtils.center("",2))        =    " "

StringUtils.center("as",-1))    =    "as"

StringUtils.center("as",2))        =    "as"

StringUtils.center("as",3))        =    "as "

StringUtils.center("as",4))        =    " as "

StringUtils.center("as",10))    =    "    as    "

87.public static String center(String str, int size, char padChar)

和86類似,隻是其他位置補padChar。

這裡不再舉例。

88.public static String center(String str, int size, String padStr)

和86類似,隻是其他位置補padStr。

這裡不再舉例。

89.public static String swapCase(String str)

把字元串中的字元大寫轉換為小寫,小寫轉換為大寫。

舉例:

StringUtils.swapCase(null)          = null

StringUtils.swapCase("")            = ""

StringUtils.swapCase("Hello Boys")) = "hELLO bOYS"

StringUtils.swapCase("I am 11"))        =    "i AM 11"

90.public static int countMatches(String str, String sub)

計算字元串sub在字元串str中出現的次數。

如果str為null或"",則傳回0

舉例(*表示任意):

StringUtils.countMatches(null, *)        = 0

StringUtils.countMatches("", *)          = 0

StringUtils.countMatches("asdf","as"))   = 1

StringUtils.countMatches("asdfas","as")) = 2

StringUtils.countMatches("dfgh","as"))   = 0

StringUtils.countMatches("as",""))            = 0

StringUtils.countMatches("as",null))        = 0 

繼續閱讀