StringUtils的常用方法

1,434 阅读3分钟

引言

开发中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

点点关注,不会迷路