引言
开发中String类是经常用到的对象类型,String类自带很多优秀的方法,但是在开发中还有另一个工具类StringUtils更全面,用起来也是更香。今天少侠就稍微来做下小结。
在进入小结之前先要配置pom.xml并导包:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.10</version>
</dependency>
import org.apache.commons.lang3.StringUtils;
1 isEmpty(CharSequence cs)
注意参数类型CharSequence,感兴趣的可以看下String的源码,String实现了该接口。
判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0,附示例:
StringUtils.isEmpty(null) : true
StringUtils.isEmpty("") : true
StringUtils.isEmpty(" ") : false
StringUtils.isEmpty(" ") : false
2 isNotEmpty(CharSequence cs)
判断某字符串是否不为空,结果和isEmpty()方法相反
3 isBlank(CharSequence cs)
判断某字符串是否为空或长度为0或由空白符(whitespace) 组成,附示例:
StringUtils.isBlank(null) : true
StringUtils.isBlank("") : true
StringUtils.isBlank(" ") : true
StringUtils.isBlank(" ") : true
StringUtils.isBlank("\t \n \f \r") : true //对于制表符、换行符、换页符和回车符
4 isNotBlank(CharSequence cs)
判断某字符串是否不为空且长度不为0且不由空白符(whitespace) 构成,等于 !isBlank(CharSequence cs)
5 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\tseu \b") : "seu"
6 strip(String str)
去掉字符串两端的空白符(whitespace) ,如果输入为 null 则返回 null,注意该方法和trim()方法的主要区别在于不能去掉单词边界符\b,附示例:
StringUtils.strip(null) : null
StringUtils.strip("") : ""
StringUtils.strip(" ") : ""
StringUtils.strip(" \b \t \n \f \r ") : "\b"
StringUtils.strip(" \n\tseu \b") : "seu \b"
7 strip(String str, String stripChars)
去掉 str 两端的在 stripChars 中的字符。
如果 str 为 null 或等于"" ,则返回它本身;
如果 stripChars 为 null 或"" ,则返回 strip(String str),附示例:
StringUtils.strip("seume", "em") : seu
StringUtils.strip("seume", "ems") : u
8 ordinalIndexOf(CharSequence str, CharSequence searchStr, int ordinal)
返回字符串 searchStr 在字符串 str 中第 ordinal 次出现的位置。
如果 str=null 或 searchStr=null 或 ordinal<=0 则返回-1,附示例:
StringUtils.ordinalIndexOf("seume", "s", 1) : 0
StringUtils.ordinalIndexOf("seume", "e", 2) : 4
9 equals(CharSequence cs1, CharSequence cs2)
比较两个字符串是否相等,如果两个均为空则也认为相等。,附示例:
StringUtils.equals(null, "s") : false
StringUtils.equals("SEu", "seu") : false
10 equalsIgnoreCase(CharSequence cs1, CharSequence cs2)
比较两个字符串是否相等,不区分大小写,如果两个均为空则也认为相等。,附示例:
StringUtils.equalsIgnoreCase("SEu", "seu") : true
11 startsWith(CharSequence cs1, CharSequence cs2)
比较字符串cs1是否以指定前缀cs2开头,附示例:
StringUtils.startsWith("seume", "seu") : true
12 contains(CharSequence cs1, CharSequence cs2)
比较字符串cs1是否包含cs2,附示例:
StringUtils.contains("seume", "seu") : true
13 substringBefore(String str, String separator)
将字符串str按照separator第一次出现的位置截取,取前段的内容,附示例:
StringUtils.substringBefore("seume2016", "e") : s
14 substringBeforeLast(String str, String separator)
将字符串str按照separator最后一次出现的位置截取,取前段的内容,附示例:
StringUtils.substringBeforeLast("seume2016", "e") : seum
15 substringAfter(String str, String separator)
将字符串str按照separator第一次出现的位置截取,取后段的内容,附示例:
StringUtils.substringAfter("seume2016", "e") : ume2016
16 substringAfterLast(String str, String separator)
将字符串str按照separator最后一次出现的位置截取,取后段的内容,附示例:
StringUtils.substringAfterLast("seume2016", "e") : 2016