StringUtils
StringUtils是Apache Commons Lang提供的字符串工具类,所有方法空安全。
概述
所在包
org.apache.commons.lang3.StringUtils
依赖引入
XML
<dependency>
<groupId>org.apache.commons.lang3</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
核心特点
- 所有方法空安全(null不会抛异常)
- 静态方法,无需创建对象
- 比Java原生String方法更丰富
空判断方法
isEmpty与isBlank
| 方法 | 判断条件 | 示例 |
|---|---|---|
| isEmpty() | null或长度为0 | isEmpty("") → true |
| isBlank() | null、长度为0或全空白 | isBlank(" ") → true |
| isNotEmpty() | 非null且长度>0 | isNotEmpty("a") → true |
| isNotBlank() | 非null、非空、非全空白 | isNotBlank("a") → true |
Java
StringUtils.isEmpty(null); // true
StringUtils.isEmpty(""); // true
StringUtils.isEmpty(" "); // false(有空白字符)
StringUtils.isBlank(null); // true
StringUtils.isBlank(""); // true
StringUtils.isBlank(" "); // true(全空白)
StringUtils.isBlank(" a "); // false
关键区别:isBlank比isEmpty更严格,空白字符串isBlank返回true。
截取与修剪
trim系列
Java
StringUtils.trim(null); // null
StringUtils.trim(""); // ""
StringUtils.trim(" "); // ""
StringUtils.trim(" abc "); // "abc"
// 修剪为空返回null
StringUtils.trimToNull(" "); // null
StringUtils.trimToNull("a"); // "a"
// 修剪为空返回空串
StringUtils.trimToEmpty(null); // ""
substring系列
Java
StringUtils.substring("abcdef", 2); // "cdef"
StringUtils.substring("abcdef", 2, 4); // "cd"
StringUtils.substringBefore("abc@def", "@"); // "abc"
StringUtils.substringAfter("abc@def", "@"); // "def"
StringUtils.substringBetween("a[b]c", "[", "]"); // "b"
分割与连接
split分割
Java
String[] arr = StringUtils.split("a,b,c", ",");
// ["a", "b", "c"]
// 限制分割数量
String[] arr = StringUtils.split("a,b,c,d", ",", 2);
// ["a", "b,c,d"]
join连接
Java
String str = StringUtils.join(new String[]{"a", "b", "c"}, ",");
// "a,b,c"
String str = StringUtils.join(Arrays.asList(1, 2, 3), "-");
// "1-2-3"
替换与补全
replace替换
Java
StringUtils.replace("abcabc", "ab", "x");
// "xcxc"
StringUtils.replaceOnce("abcabc", "ab", "x");
// "xcabc"(只替换一次)
leftPad/rightPad补全
Java
StringUtils.leftPad("5", 3, "0"); // "005"
StringUtils.rightPad("5", 3, "0"); // "500"
StringUtils.center("5", 3, "0"); // "050"
判断与验证
contains包含判断
Java
StringUtils.contains("abcdef", "abc"); // true
StringUtils.containsIgnoreCase("ABC", "abc"); // true(忽略大小写)
StringUtils.containsAny("abc", "x", "a"); // true(包含任意一个)
StringUtils.containsNone("abc", "x", "y"); // true(不包含任意)
startsWith/endsWith
Java
StringUtils.startsWith("abc.txt", "abc"); // true
StringUtils.endsWith("abc.txt", ".txt"); // true
StringUtils.startsWithIgnoreCase("ABC.txt", "abc"); // true
字母数字判断
Java
StringUtils.isNumeric("12345"); // true
StringUtils.isNumeric("12a45"); // false
StringUtils.isAlpha("abcde"); // true
StringUtils.isAlphanumeric("abc123"); // true
其他常用方法
大小写转换
Java
StringUtils.upperCase("abc"); // "ABC"
StringUtils.lowerCase("ABC"); // "abc"
StringUtils.capitalize("abc"); // "Abc"(首字母大写)
StringUtils.uncapitalize("Abc"); // "abc"(首字母小写)
空处理
Java
// null时返回默认值
StringUtils.defaultIfEmpty(null, "default"); // "default"
StringUtils.defaultIfBlank(" ", "default"); // "default"
StringUtils.defaultString(null, "default"); // "default"
要点总结
- StringUtils是Apache Commons Lang的空安全字符串工具类
- isEmpty判断null/空串,isBlank还包括空白串
- trim修剪空白,substringBefore/After定位截取
- split分割,join连接数组/集合
- leftPad/rightPad补齐长度
- contains/startsWith判断包含
- isNumeric/isAlpha判断字母数字
- defaultIfEmpty/defaultIfBlank空值默认处理
📝 发现内容有误?点击此处直接编辑