每一秒钟的时间都值得铭记

0%

Apache lang3 StringUtils工具类常用方法

在工作中,apache lang3是一个非常常用的工具包,其中包含了很多通用的方法,能够在工作中提升我们的效率,简化我们的代码开发。
其中StringUtils是apache lang3对字符串方法封装的一个常用工具类,今天我们就来学习一下这个字符串工具类。

引入依赖

1
2
3
4
5
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.7</version>
</dependency>

StringUtils常用方法

isBlank

  • 字符串非空判断,只要传入的字符串不为null并且长度不为0,则返回false

  • 注意:如果字符串是一些特殊字符,也会被判定为空,返回true

1
2
3
4
5
6
7
8
9
10
11
12
String str1 = null;
System.out.println(StringUtils.isBlank(str1)); //true
String str2 = "";
System.out.println(StringUtils.isBlank(str2)); //true
String str3 = "\n";
System.out.println(StringUtils.isBlank(str3)); //true
String str4 = "\u001C";
System.out.println(StringUtils.isBlank(str4)); //true
String str5 = "字符串";
System.out.println(StringUtils.isBlank(str5)); //false
String str6 = " abc ";
System.out.println(StringUtils.isBlank(str6)); //false

isNotBlank

  • 返回结果正好是isBlank的非值,因为该方法的底层实现其实就是return !isBlank(cs);
1
2
3
4
5
6
7
8
9
10
11
12
String str1 = null;
System.out.println(StringUtils.isNotBlank(str1)); //false
String str2 = "";
System.out.println(StringUtils.isNotBlank(str2)); //false
String str3 = "\n";
System.out.println(StringUtils.isNotBlank(str3)); //false
String str4 = "\u001C";
System.out.println(StringUtils.isNotBlank(str4)); //false
String str5 = "字符串";
System.out.println(StringUtils.isNotBlank(str5)); //true
String str6 = " abc ";
System.out.println(StringUtils.isNotBlank(str6)); //true

isEmpty

  • isEmpty的作用和isBlank类似,但是在效果上有所区别,因为isEmpty不会判断特殊字符,如果存在特殊字符,会将其当成普通字符串处理。
  • isEmpty的判断逻辑为,只要字符串不为null,并且长度不为0,则说明非空,返回false
  • 建议在工作开发中使用isBlank或者isNotBlank方法来判断字符串是否非空。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    String str1 = null;
    System.out.println(StringUtils.isEmpty(str1)); //true
    String str2 = "";
    System.out.println(StringUtils.isEmpty(str2)); //true
    String str3 = "\n";
    System.out.println(StringUtils.isEmpty(str3)); //false
    String str4 = "\u001C";
    System.out.println(StringUtils.isEmpty(str4)); //false
    String str5 = "字符串";
    System.out.println(StringUtils.isEmpty(str5)); //false
    String str6 = " abc ";
    System.out.println(StringUtils.isEmpty(str6)); //false

isNotEmpty

  • 返回结果正好是isEmpty的非值,因为该方法的底层实现其实就是return !isEmpty(cs);
1
2
3
4
5
6
7
8
9
10
11
12
String str1 = null;
System.out.println(StringUtils.isNotEmpty(str1)); //false
String str2 = "";
System.out.println(StringUtils.isNotEmpty(str2)); //false
String str3 = "\n";
System.out.println(StringUtils.isNotEmpty(str3)); //true
String str4 = "\u001C";
System.out.println(StringUtils.isNotEmpty(str4)); //true
String str5 = "字符串";
System.out.println(StringUtils.isNotEmpty(str5)); //true
String str6 = " abc ";
System.out.println(StringUtils.isNotEmpty(str6)); //true

join

  • join是StringUtils提供的一个字符串拼接的方法。
  • 该方法的实现是以StringBuilder的方式来进行字符串拼接的,线程不安全,多线程环境下不建议使用。
1
2
3
4
5
6
7
String str1 = "abc";
String str2 = "def";
String str3 = null;
String str4 = "";
String str5 = "123";
String join = StringUtils.join(str1, str2, str3,str4,str5);
System.out.println(join); //abcdef123

equals

  • StringUtils.equals()方法是字符串String.equals()方法的一个增强,在StringUtils中添加了字符串为null的判断逻辑,即使使用null进行比较,也不会出现空指针异常。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
String str1 = "abc";
String str2 = "def";
System.out.println(StringUtils.equals(str1, str2)); //false
str1 = "";
str2 = "def";
System.out.println(StringUtils.equals(str1, str2)); //false
str1 = null;
str2 = "";
System.out.println(StringUtils.equals(str1, str2)); //false
str1 = null;
str2 = null;
System.out.println(StringUtils.equals(str1, str2)); //true
str1 = "";
str2 = "";
System.out.println(StringUtils.equals(str1, str2)); //true
str1 = "123";
str2 = "123";
System.out.println(StringUtils.equals(str1, str2)); //true

equalsIgnoreCase

  • 忽略大小写比较字符串是否相同
1
2
3
4
5
6
String str1 = "abc";
String str2 = "ABC";
System.out.println(StringUtils.equalsIgnoreCase(str1, str2)); //true
str1 = "abc";
str2 = "ABc";
System.out.println(StringUtils.equalsIgnoreCase(str1, str2)); //true

split

  • StringUtils中的split同样是字符串split方法的一个增强。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
String str1 = "abc 123\nDEF";
String str2 = " ";
String[] split1 = StringUtils.split(str1);
for (String str : split1) {
System.out.println(str);
} // abc 123 DEF
String str3 = "abc,123,DEF$456";
String str4 = ",";
String[] split2 = StringUtils.split(str3, str4);
for (String str : split2) {
System.out.println(str);
} // abc 123 DEF$456
String str5 = null;
String str6 = null;
String[] split3 = StringUtils.split(str5, str6);
System.out.println(split3); // null

trim

  • 用于除去字符串两边的空格,如果为null,则返回null
1
2
3
4
5
6
7
8
9
10
String str1 = "  abcdef  ";
System.out.println(StringUtils.trim(str1)); //abcdef
String str2 = "abcdef ";
System.out.println(StringUtils.trim(str2)); //abcdef
String str3 = " abcdef";
System.out.println(StringUtils.trim(str3)); //abcdef
String str4 = "";
System.out.println(StringUtils.trim(str4)); // [空字符串]
String str5 = null;
System.out.println(StringUtils.trim(str5)); //null

contains

  • 用于判断字符串中是否包含另外的字符串,如果有值为null,则返回false
1
2
3
4
5
6
7
8
9
String str1 = "abcdef123ghijk";
String str2 = "23";
System.out.println(StringUtils.contains(str1, str2)); //true
str1 = null;
str2 = null;
System.out.println(StringUtils.contains(str1, str2)); //false
str1 = "abcdef";
str2 = null;
System.out.println(StringUtils.contains(str1, str2)); //false

Apache lang3 StringUtils中封装的字符串方法较为常用的就是上面的这些方法,除此之外,还有其他一些方法,以后如果有时间也会向各位同学一一介绍。

坚持原创技术分享,您的支持将鼓励我继续创作!
-------------这是我的底线^_^-------------