??xml version="1.0" encoding="utf-8" standalone="yes"?>
除了构造器Q?span style="font-family: verdana,geneva">StringUtils 中一共有130多个Ҏ(gu)Qƈ且都?static 的,所以我们可以这栯?StringUtils.xxx()
下面分别对一些常用方法做要介l:
1. public static boolean isEmpty(String str)
判断某字W串是否为空QؓI的标准?str==null ?str.length()==0
下面?StringUtils 判断是否为空的示例:
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false //注意?StringUtils 中空g非空处理
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false
2. public static boolean isNotEmpty(String str)
判断某字W串是否非空Q等?!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)
判断某字W串是否为空或长度ؓ0或由I白W?span style="font-family: verdana,geneva">(whitespace) 构成
下面是示例:
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("\t \n \f \r") = true //对于制表W、换行符、换늬和回车符
StringUtils.isBlank() //均识为空白符
StringUtils.isBlank("\b") = false //"\b"为单词边界符
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false
4. public static boolean isNotBlank(String str)
判断某字W串是否不ؓIZ长度不ؓ0且不q白符(whitespace) 构成Q等?!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)
L字符串两端的控制W?span style="font-family: verdana,geneva">(control characters, char <= 32) , 如果输入?null 则返?span style="font-family: verdana,geneva">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)
L字符串两端的控制W?span style="font-family: verdana,geneva">(control characters, char <= 32) ,如果变ؓ null ?"Q则q回 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)
L字符串两端的控制W?span style="font-family: verdana,geneva">(control characters, char <= 32) ,如果变ؓ null ?"" Q则q回 ""
下面是示例:
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)
L字符串两端的I白W?span style="color: #0000ff; font-family: verdana,geneva">(whitespace) Q如果输入ؓ null 则返?null
下面是示?注意?span style="color: #0000ff; font-family: verdana,geneva"> trim() 的区?Q?br />
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)
L字符串两端的I白W?span style="color: #0000ff; font-family: verdana,geneva">(whitespace) Q如果变?null ?"Q则q回 null
下面是示?注意?trimToNull() 的区?Q?br />
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)
L字符串两端的I白W?span style="color: #0000ff; font-family: verdana,geneva">(whitespace) Q如果变?span style="font-family: verdana,geneva"> null ?span style="font-family: verdana,geneva">"" Q则q回""
下面是示?注意?trimToEmpty() 的区?Q?br />
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"
以下Ҏ(gu)只介l其功能Q不再D例:
11. public static String strip(String str, String stripChars)
L str 两端的在 stripChars 中的字符?br />
如果 str ?null 或等?span style="font-family: verdana,geneva">"" Q则q回它本w;
如果 stripChars ?null ?span style="font-family: verdana,geneva">"" Q则q回 strip(String str) ?br />
12. public static String stripStart(String str, String stripChars)
?1怼Q去?span style="font-family: verdana,geneva"> str 前端的在 stripChars 中的字符?br />
13. public static String stripEnd(String str, String stripChars)
?1怼Q去?str 末端的在 stripChars 中的字符?br />
14. public static String[] stripAll(String[] strs)
对字W串数组中的每个字符串进?strip(String str) Q然后返回?br />
如果 strs ?null ?strs 长度?Q则q回 strs 本n
15. public static String[] stripAll(String[] strs, String stripChars)
对字W串数组中的每个字符串进?strip(String str, String stripChars) Q然后返回?br />
如果 strs ?null ?strs 长度?Q则q回 strs 本n
16. public static boolean equals(String str1, String str2)
比较两个字符串是否相{,如果两个均ؓI则也认为相{?br />
17. public static boolean equalsIgnoreCase(String str1, String str2)
比较两个字符串是否相{,不区分大写Q如果两个均为空则也认ؓ相等?br />
18. public static int indexOf(String str, char searchChar)
q回字符 searchChar 在字W串 str 中第一ơ出现的位置?br />
如果 searchChar 没有?str 中出现则q回-1Q?br />
如果 str ?null ?"" Q则也返?1
19. public static int indexOf(String str, char searchChar, int startPos)
q回字符 searchChar ?startPos 开始在字符?str 中第一ơ出现的位置?br />
如果?startPos 开?searchChar 没有?span style="font-family: verdana,geneva"> str 中出现则q回-1Q?br />
如果 str ?null ?"" Q则也返?1
20. public static int indexOf(String str, String searchStr)
q回字符?searchStr 在字W串 str 中第一ơ出现的位置?br />
如果 str ?null ?searchStr ?null 则返?1Q?br />
如果 searchStr ?"" ,?span style="font-family: verdana,geneva"> str Z?null Q则q回0Q?br />
如果 searchStr 不在 str 中,则返?1
21. public static int ordinalIndexOf(String str, String searchStr, int ordinal)
q回字符?searchStr 在字W串 str 中第 ordinal ơ出现的位置?br />
如果 str=null ?searchStr=null ?ordinal<=0 则返?1
举例(*代表L字符?Q?br />
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)
q回字符?searchStr ?startPos 开始在字符?str 中第一ơ出现的位置?br />
举例(*代表L字符?Q?br />
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)
基本原理?8
24. public static int lastIndexOf(String str, char searchChar, int startPos)
基本原理?9
25. public static int lastIndexOf(String str, String searchStr)
基本原理?0
26. public static int lastIndexOf(String str, String searchStr, int startPos)
基本原理?2
另附Q?br />
String ?split(String regex) Ҏ(gu)的用?br />
如果我们需要把某个字符串拆分ؓ字符串数l,则通常?span style="font-family: verdana,geneva"> split(String regex) 来实现?br />
例如Q?br />
l果为:
4
aa
bb
cc
dd
如果Q?br />
String str = "aa.bb.cc.dd";
String[] strArray = str.split(".");
则结果ؓQ?
Z么结果不是我们所想的呢,原因是参?span style="font-family: verdana,geneva"> String regex 是正则表辑ּ (regular expression) 而不是普通字W串Q?"." 在正则表辑ּ中有Ҏ(gu)含义Q表C匹配所有单个字W。如果要那样拆分Q我们必ȝ "." q行转义Q?span style="font-family: verdana,geneva">String[] strArray = str.split(".") 修改?String[] strArray = str.split("\\.") 卛_?br />
另外有关 StringUtils 的详l?API 请参见官方网?span style="font-family: arial,helvetica,sans-serif">: http://commons.apache.org/lang/api/org/apache/commons/lang/StringUtils.html