Java实用工具库commons-lang3的使用

 更新时间:2025年03月07日 10:09:49   作者:成都市-高级Java开发-空  
Apache Commons Lang 3是一个流行的Java实用工具库,提供了对java.lang包的扩展,包括字符串操作、正则表达式处理、数字操作、日期和时间操作、随机字符串生成和对象操作等功能

Java实用工具库commons-lang3

Apache Commons Lang 是一个流行的 Java 实用工具库,其中 commons-lang3 是其最新的主流版本,用于增强 Java 核心功能,特别是对 java.lang 包的扩展。

以下是 commons-lang3 的功能概述,以及如何使用其中的一些工具(如 RegExUtils)。

Maven 依赖

在使用 commons-lang3 之前,需要在项目中添加 Maven 依赖:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version> <!-- 或最新版本 -->
</dependency>

主要工具与功能

1. StringUtils

  • 提供对字符串操作的各种实用方法。
import org.apache.commons.lang3.StringUtils;

public class StringUtilsExample {
    public static void main(String[] args) {
        String str = "  Hello World  ";

        // 判断字符串是否为空或空白
        System.out.println(StringUtils.isBlank(str)); // false

        // 删除两端空格
        System.out.println(StringUtils.trim(str)); // "Hello World"

        // 反转字符串
        System.out.println(StringUtils.reverse(str)); // "  dlroW olleH  "
    }
}

2. RegExUtils

  • 用于处理正则表达式的高级工具。
import org.apache.commons.lang3.RegExUtils;

public class RegExUtilsExample {
    public static void main(String[] args) {
        String text = "key1:value1, key2:value2, key3:value3";

        // 替换冒号为下划线
        String result = RegExUtils.replaceAll(text, ":", "_");
        System.out.println(result); // "key1_value1, key2_value2, key3_value3"
    }
}

3. NumberUtils

  • 提供数字操作的工具方法。
import org.apache.commons.lang3.math.NumberUtils;

public class NumberUtilsExample {
    public static void main(String[] args) {
        // 判断是否是数字
        System.out.println(NumberUtils.isCreatable("123")); // true
        System.out.println(NumberUtils.isCreatable("12.3")); // true
        System.out.println(NumberUtils.isCreatable("abc")); // false

        // 找到数组中的最大值
        int[] numbers = {1, 2, 3, 4, 5};
        System.out.println(NumberUtils.max(numbers)); // 5
    }
}

4. DateUtils

  • 提供日期和时间操作的工具。
import org.apache.commons.lang3.time.DateUtils;

import java.text.ParseException;
import java.util.Date;

public class DateUtilsExample {
    public static void main(String[] args) throws ParseException {
        String dateStr = "2025-01-01";

        // 解析日期
        Date date = DateUtils.parseDate(dateStr, "yyyy-MM-dd");
        System.out.println(date);

        // 添加天数
        Date newDate = DateUtils.addDays(date, 5);
        System.out.println(newDate);
    }
}

5. RandomStringUtils

  • 生成随机字符串的工具。
import org.apache.commons.lang3.RandomStringUtils;

public class RandomStringUtilsExample {
    public static void main(String[] args) {
        // 生成随机字母字符串
        String randomAlphabetic = RandomStringUtils.randomAlphabetic(10);
        System.out.println(randomAlphabetic);

        // 生成随机数字字符串
        String randomNumeric = RandomStringUtils.randomNumeric(10);
        System.out.println(randomNumeric);
    }
}

6. ObjectUtils

  • 提供对对象操作的工具。
import org.apache.commons.lang3.ObjectUtils;

public class ObjectUtilsExample {
    public static void main(String[] args) {
        String str = null;

        // 如果对象为 null,提供默认值
        System.out.println(ObjectUtils.defaultIfNull(str, "Default Value")); // "Default Value"

        // 判断多个对象是否都不为空
        System.out.println(ObjectUtils.allNotNull("A", "B", "C")); // true
        System.out.println(ObjectUtils.allNotNull("A", null, "C")); // false
    }
}

总结

commons-lang3 提供了一系列增强 Java 核心功能的工具类,常用功能包括:

  • 字符串处理StringUtilsRegExUtils
  • 数字操作NumberUtils
  • 日期操作DateUtils
  • 随机字符串生成RandomStringUtils
  • 对象工具ObjectUtils

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • springboot读取yml文件中的list列表、数组、map集合和对象方法实例

    springboot读取yml文件中的list列表、数组、map集合和对象方法实例

    在平时的yml配置文件中,我们经常使用到配置基本数据类型的字符串,下面这篇文章主要给大家介绍了关于springboot读取yml文件中的list列表、数组、map集合和对象的相关资料,需要的朋友可以参考下
    2023-02-02
  • Java使用TarsosDSP库实现音频的处理和格式转换

    Java使用TarsosDSP库实现音频的处理和格式转换

    在音频处理领域,Java虽然有原生的音频处理类库,但其功能相对基础,而TarsosDSP是一个强大的开源音频处理库,提供了丰富的功能,本文将介绍如何在Java中结合使用TarsosDSP库,来实现音频的处理和格式转换,需要的朋友可以参考下
    2025-04-04
  • springboot controller参数注入方式

    springboot controller参数注入方式

    这篇文章主要介绍了springboot controller参数注入方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Hibernate核心思想与接口简介

    Hibernate核心思想与接口简介

    这篇文章主要介绍了Hibernate核心思想与接口的相关内容,需要的朋友可以参考下。
    2017-09-09
  • Java数组与二维数组及替换空格实战真题讲解

    Java数组与二维数组及替换空格实战真题讲解

    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。Java 语言中提供的数组是用来存储固定大小的同类型元素,这篇文章主要介绍了Java数组与二维数组及替换空格实战真题讲解
    2022-07-07
  • Springboot创建子父工程过程图解

    Springboot创建子父工程过程图解

    这篇文章主要介绍了Springboot创建子父工程过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • 配置hadoop环境mapreduce连接不上hdfs解决

    配置hadoop环境mapreduce连接不上hdfs解决

    这篇文章主要为大家介绍了配置hadoop环境mapreduce连接不上hdfs解决方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • SpringAop如何通过某个子类切父类

    SpringAop如何通过某个子类切父类

    这篇文章主要介绍了SpringAop如何通过某个子类切父类,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Springmvc Controller接口代码示例

    Springmvc Controller接口代码示例

    这篇文章主要介绍了Springmvc Controller接口代码示例,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • java开发技巧代码写的快且bug少的原因分析

    java开发技巧代码写的快且bug少的原因分析

    这篇文章主要为大家介绍了java开发中代码写的快且bug少的原因分析及技巧详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12

最新评论