全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-08 8 分钟 ✍️ juanwangdev

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或长度为0isEmpty("") → true
isBlank()null、长度为0或全空白isBlank(" ") → true
isNotEmpty()非null且长度>0isNotEmpty("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空值默认处理

📝 发现内容有误?点击此处直接编辑

← 上一篇 ObjectUtils
下一篇 → System类
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库