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

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能让这项工作变得更加轻松和高效。希望这篇博客能帮助你更好地理解并使用这个强大的工具类!


http://www.kler.cn/a/612768.html

相关文章:

  • 7-项目负责人-添加产品
  • Linux驱动开发 中断处理
  • Python数据模型(延伸阅读)
  • 外星人入侵(python设计小游戏)
  • PS 切割图片
  • C语言中的位域:节省内存的标志位管理技术
  • 数据结构和算法简介 以及 顺序表
  • 如何使用RK平台的spi驱动 spidev
  • 自动化发布工具CI/CD实践Jenkins各配置功能介绍和管理!
  • 质检LIMS系统在化肥生产企业的应用 化肥质量管理的数字化中枢
  • Python学习第二十六天
  • Spring Data审计利器:@LastModifiedDate详解!!!
  • PDF处理控件Spire.PDF系列教程:Java 给现有的 PDF 文档添加页眉页脚
  • PyTorch 深度学习实战(27):扩散模型(Diffusion Models)与图像生成
  • java替换html中的标签
  • 《深度剖析SQL数据类型转换:隐式与显式的奥秘》
  • WPF 附加属性
  • 在海量数据中精准定位:BloomFilter的工作原理与实战指南
  • OmniGraffle Pro for Mac思维导图
  • 自行车模型与汽车模型的混合策略在自动驾驶中的多维度协同优化