一、前言
实际开发中经常会对字符串进行一些处理(判断、截取等等),可以使用 StringUtils 工具类进行操作,在实际开发中可以使用 Spring 的 StringUtills 类,也可以使用 Apache 的 StringUtils 类。
Maven依赖:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
二、常用API
1、isEmpty、isNotEmpty
判断标准:为空
str == null
或者str.length() == 0
//判断字符串是否为""或者null
System.out.println(StringUtils.isEmpty("")); //true
//空格做非空处理
System.out.println(StringUtils.isEmpty(" "));//false
//与iSEmpty方法相反
System.out.println(StringUtils.isNotEmpty(""));//false
2、isBlank、isNotBlank
判断标准:为空或者长度为0或者由空白符构成
//判断字符串对象为空
System.out.println(StringUtils.isBlank(" "));//true
System.out.println(StringUtils.isBlank(""));//true
//判断字符串对象不为空
System.out.println(StringUtils.isNotBlank(""));//false
3、trim、trimToNull、trimToEmpty
移除字符串两端的空字符串
System.out.println(StringUtils.trim(" 23 "));//23
System.out.println(StringUtils.trimToNull(" 123 "));//123
System.out.println(StringUtils.trimToNull(null));//null
System.out.println(StringUtils.trimToEmpty(null));//无值
4、equals、equalsIgnoreCase
字符串比对方法
//两个比较的字符串都能为空,不会报空指针
System.out.println(StringUtils.equals("",""));//true
//字符串比较(忽略大小写),验证码字符串比较
System.out.println(StringUtils.equalsIgnoreCase("a","A"));//true
5、indexOf、ordinalIndexOf、lastIndexOf
//返回字符首次出现的位置
System.out.println(StringUtils.indexOf("hahah","a"));//1
//返回字符串在另一个字符串里面,出现第几次的位置
System.out.println(StringUtils.ordinalIndexOf("hhhahaha","ha",2));//4
//返回字符串最后一次出现的位置
System.out.println(StringUtils.lastIndexOf("hahahha","a"));//6
6、contains、containsAny
//判断一个字符串是否包含另一个字符串
System.out.println(StringUtils.contains("12346545","45"));//true
//判断是否包含后面数组中的任意对象并返回
System.out.println(StringUtils.containsAny("123456",new char[]{'1'}));//true
System.out.println(StringUtils.containsAny("123456",new String[]{"1"}));//true
7、substring
//从指定位置开始字符串截取
System.out.println(StringUtils.substring("123456",1));//23456
//负数表示从后面开始
System.out.println(StringUtils.substring("123456",-3));//456
8、split
//指定字符对字符串分割,返回一个数组
String[] split = StringUtils.split("123456", "2");
System.out.println(split[0] + split[1]);
9、join
//字符串拼接
System.out.println(StringUtils.join("12",34,"56"));//123456
//按照指定分割符拼接数组内容
System.out.println(StringUtils.join(new String[]{"a","b"},"1"));//a1b
10、deleteWhitespace
//删除字符串中的空格
System.out.println(StringUtils.deleteWhitespace(" 12 456 789"));//123456789
11、removeStart
//删除以特定字符串开头的字符串,如果没有,就不删除
System.out.println(StringUtils.removeStart("123456","1"));//23456
12、reverse
//字符串反转
System.out.println(StringUtils.reverse("123456"));//654321
13、abbreviate
//缩略字符串,省略号要占三位。maxWith小于3位会报错。
System.out.println(StringUtils.abbreviate("123456",4));//1...