当前位置: 首页 > news >正文

Java StringUtils工具类常用方法详解

StringUtils是Apache Commons Lang库中一个极其常用的工具类,它提供了大量处理字符串的静态方法,能够简化我们的日常开发工作,提高代码的可读性和健壮性。下面我将详细介绍StringUtils类中最常用的方法及其使用场景。

一、StringUtils的基本介绍

Apache Commons Lang库中的StringUtils类提供了比JDK原生String类更丰富的字符串操作方法,所有方法都是null安全的,这意味着它们可以优雅地处理null值而不会抛出NullPointerException。

引入依赖创建springboot工程会自动引入该依赖

<XML>

<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-lang3</artifactId>
  <version>3.12.0</version>
</dependency>

二、空校验与空白校验

1. isEmpty() - 空字符串校验

<JAVA>

StringUtils.isEmpty(null)      // true
StringUtils.isEmpty("")        // true
StringUtils.isEmpty(" ")       // false
StringUtils.isEmpty("test")    // false

2. isNotEmpty() - 非空校验

<JAVA>

StringUtils.isNotEmpty(null)   // false
StringUtils.isNotEmpty("")     // false
StringUtils.isNotEmpty(" ")    // true
StringUtils.isNotEmpty("test") // true

3. isBlank() - 空白字符串校验

<JAVA>

StringUtils.isBlank(null)      // true
StringUtils.isBlank("")        // true
StringUtils.isBlank(" ")       // true
StringUtils.isBlank("\t\n")    // true
StringUtils.isBlank("test")    // false

4. isNotBlank() - 非空白字符串校验

<JAVA>

StringUtils.isNotBlank(null)   // false
StringUtils.isNotBlank("")     // false
StringUtils.isNotBlank(" ")    // false
StringUtils.isNotBlank("test") // true

三、字符串截取与分割

5. substring() - 安全截取字符串

<JAVA>

StringUtils.substring(null, 2)   // null
StringUtils.substring("", 2)     // ""
StringUtils.substring("abc", 0)  // "abc"
StringUtils.substring("abc", 2)  // "c"
StringUtils.substring("abc", 4)  // ""

6. split() - 字符串分割

<JAVA>

String[] result = StringUtils.split("a..b.c", '.');
// result = ["a", "b", "c"]

7. join() - 字符串连接

<JAVA>

StringUtils.join(new String[] {"a", "b", "c"}, ",")  // "a,b,c"

四、字符串比较

8. equals() - 安全字符串比较

<JAVA>

StringUtils.equals(null, null)   // true
StringUtils.equals(null, "abc")  // false
StringUtils.equals("abc", null)  // false
StringUtils.equals("abc", "abc") // true
StringUtils.equals("abc", "ABC") // false

9. equalsIgnoreCase() - 忽略大小写比较

<JAVA>

StringUtils.equalsIgnoreCase("abc", "ABC") // true

10. compare() - 安全字符串比较(可处理null)

<JAVA>

StringUtils.compare(null, null)   // 0
StringUtils.compare(null , "a")   // -1
StringUtils.compare("a", null)    // 1
StringUtils.compare("a", "a")     // 0
StringUtils.compare("a", "b")     // -1

五、字符串填充与去除

11. trim() - 去除两端空白

<JAVA>

StringUtils.trim(null)          // null
StringUtils.trim("")            // ""
StringUtils.trim("     ")       // ""
StringUtils.trim("abc  ")       // "abc"
StringUtils.trim("    abc    ") // "abc"

12. strip() - 扩展去除空白

<JAVA>

StringUtils.strip("  ab c  ", null)  // "ab c"
StringUtils.strip("  ab c  ", " ")   // "ab c"
StringUtils.strip("abcab", "ab")     // "c"

13. leftPad() / rightPad() - 字符串填充

<JAVA>

StringUtils.leftPad("abc", 5, ' ')  // "  abc"
StringUtils.rightPad("abc", 5, ' ') // "abc  "

六、字符串查找与替换

14. contains() - 包含检查

<JAVA>

StringUtils.contains(null, *)     // false
StringUtils.contains(*, null)     // false
StringUtils.contains("abc", 'a')  // true
StringUtils.contains("abc", "z")  // false

15. countMatches() - 统计出现次数

<JAVA>

StringUtils.countMatches("abba", "a")    // 2
StringUtils.countMatches("abba", "b")    // 2
StringUtils.countMatches("abba", 'a')    // 2

16. replace() - 字符串替换

<JAVA>

StringUtils.replace("aba", "a", "z")   // "zbz"
StringUtils.replace("abc", "d", "z")   // "abc"

七、字符串转换

17. capitalize() / uncapitalize() - 首字母大小写转换

<JAVA>

StringUtils.capitalize("cat")      // "Cat"
StringUtils.uncapitalize("Cat")    // "cat"

18. swapCase() - 大小写互换

<JAVA>

StringUtils.swapCase("The Dog has a BONE") // "tHE dOG HAS A bone"

19. reverse() - 字符串反转

<JAVA>

StringUtils.reverse("bat")  // "tab"

八、其他实用方法

20. defaultString() - null值默认字符串

<JAVA>

StringUtils.defaultString(null)  // ""
StringUtils.defaultString("")    // ""
StringUtils.defaultString("bat") // "bat"
StringUtils.defaultString(null, "default")  // "default"

21. abbreviate() - 字符串缩写

<JAVA>

StringUtils.abbreviate("abcdefg", 6)  // "abc..."
StringUtils.abbreviate("abcdefg", "...", 4)  // "a..."

22. difference() - 查找不同部分

<JAVA>

StringUtils.difference("abcde", "abxyz")  // "xyz"

总结

StringUtils提供的方法远比原生String类丰富且安全,可以显著提高开发效率和代码质量。这里介绍的只是最常用的部分方法,实际使用中还有更多实用功能如normalizeSpace()isNumeric()wrap()等方法,都值得在项目中尝试使用。

正确处理字符串是每个Java开发者必备的技能,掌握StringUtils能让这项工作变得更加轻松和高效。希望这篇博客能帮助你更好地理解并使用这个强大的工具类!

相关文章:

  • COMPASS:通过残差强化学习和技能合成实现跨具身移动策略
  • 深入解剖Linux进程:从诞生到调度的核心机制
  • 2.1-WAF\CDN\OSS\反向代理\负载均衡
  • linux 硬盘扩展
  • PHP弱类型全面复盘
  • Java 大视界 -- 基于 Java 的大数据隐私计算在医疗影像数据共享中的实践探索(158)
  • 【MinIO】Bucket的生命周期管理
  • python多态、静态方法和类方法
  • Open webui的使用
  • Docker Compose 启动jar包项目
  • dubbo http流量接入dubbo后端服务
  • GRS认证是什么?GRS认证有什么意义?对企业发展的好处
  • 剑指Offer49 -- DP_贪心
  • 高中数学联赛模拟试题第9套几何题
  • 使用YOLOv5训练自定义数据集
  • 阿里云云效 Maven
  • 前端技术有哪些
  • Canvas渲染管线解析:从API调用到像素落地的全过程
  • 蓝桥杯省模拟赛 阶乘求值
  • QEMU源码全解析 —— 块设备虚拟化(12)
  • wordpress速度加快/宁波优化网站哪家好
  • 如何防止网站被劫持/百度关键词排名手机
  • 做网站陪聊下单/太原搜索排名提升
  • 毕设做网站太简单/志鸿优化网官网
  • 优惠券网站怎么做/网站免费下载安装
  • 惠州建设网站/关键词提取工具