Apache Commons Lang3 常用方法详解
Apache Commons Lang3 是 Java 开发中最常用的工具库之一,提供了许多标准 Java API 没有但非常实用的功能。本文将详细介绍 Lang3 中最常用和最有价值的方法。
1. StringUtils - 字符串工具类
1.1 空字符串检查
// 检查字符串是否为null或空字符串
StringUtils.isEmpty(null); // true
StringUtils.isEmpty(""); // true
StringUtils.isEmpty(" "); // false// 检查字符串是否为null或空白字符串
StringUtils.isBlank(null); // true
StringUtils.isBlank(""); // true
StringUtils.isBlank(" "); // true
1.2 字符串截取
// 截取字符串
StringUtils.substring("abcdef", 2); // "cdef"
StringUtils.substring("abcdef", 2, 4); // "cd"// 从左边截取指定长度
StringUtils.left("abcdef", 3); // "abc"// 从右边截取指定长度
StringUtils.right("abcdef", 3); // "def"
1.3 字符串连接与分割
// 连接字符串数组
StringUtils.join(new String[]{"a", "b", "c"}, ","); // "a,b,c"// 分割字符串
StringUtils.split("a,b,c", ","); // ["a", "b", "c"]
StringUtils.splitByWholeSeparator("a,,b,c", ","); // ["a", "", "b", "c"]
2. ArrayUtils - 数组工具类
2.1 数组操作
// 检查数组是否为空
ArrayUtils.isEmpty(new String[0]); // true
ArrayUtils.isEmpty(null); // true// 添加元素到数组
String[] array = {"a", "b", "c"};
String[] newArray = ArrayUtils.add(array, "d"); // ["a", "b", "c", "d"]// 合并数组
String[] array1 = {"a", "b"};
String[] array2 = {"c", "d"};
String[] merged = ArrayUtils.addAll(array1, array2); // ["a", "b", "c", "d"]
2.2 数组查找与判断
// 判断数组是否包含某个元素
ArrayUtils.contains(new int[]{1, 2, 3}, 2); // true// 查找元素索引
ArrayUtils.indexOf(new int[]{1, 2, 3}, 2); // 1
3. BooleanUtils - 布尔工具类
// 将字符串转换为布尔值
BooleanUtils.toBoolean("true"); // true
BooleanUtils.toBoolean("yes"); // true
BooleanUtils.toBoolean("on"); // true
BooleanUtils.toBoolean("1"); // true// 将布尔值转换为字符串
BooleanUtils.toStringTrueFalse(true); // "true"
BooleanUtils.toStringOnOff(false); // "off"
4. NumberUtils - 数字工具类
// 字符串转数字
NumberUtils.toInt("123"); // 123
NumberUtils.toInt("123", 0); // 123 (默认值0)// 判断字符串是否是数字
NumberUtils.isDigits("123"); // true
NumberUtils.isCreatable("12.3"); // true// 比较数字
NumberUtils.compare(1, 2); // -1
5. ObjectUtils - 对象工具类
// 安全的对象比较
ObjectUtils.equals(null, null); // true
ObjectUtils.equals("a", "a"); // true
ObjectUtils.equals("a", "b"); // false// 获取第一个非空对象
ObjectUtils.firstNonNull(null, null, "a", "b"); // "a"// 默认值处理
ObjectUtils.defaultIfNull(null, "default"); // "default"
6. RandomUtils - 随机数工具类
// 生成随机数
RandomUtils.nextInt(0, 10); // 0-9之间的随机数
RandomUtils.nextDouble(0, 1); // 0-1之间的随机小数
7. SystemUtils - 系统工具类
// 获取系统信息
SystemUtils.getJavaHome(); // Java安装目录
SystemUtils.getUserHome(); // 用户主目录
SystemUtils.IS_OS_WINDOWS; // 是否是Windows系统
SystemUtils.IS_OS_LINUX; // 是否是Linux系统
8. DateUtils - 日期工具类
// 日期加减
Date now = new Date();
DateUtils.addDays(now, 1); // 加1天
DateUtils.addMonths(now, -1); // 减1个月// 日期比较
Date date1 = //...
Date date2 = //...
DateUtils.isSameDay(date1, date2); // 是否同一天// 日期截断(去掉时间部分)
DateUtils.truncate(now, Calendar.DATE);
9. ExceptionUtils - 异常工具类
try {// 可能抛出异常的代码
} catch (Exception e) {// 获取异常堆栈字符串String stackTrace = ExceptionUtils.getStackTrace(e);// 获取异常原因消息String rootCauseMsg = ExceptionUtils.getRootCauseMessage(e);
}
10. Validate - 验证工具类
// 验证不为null
Validate.notNull(obj, "对象不能为null");// 验证不为空
Validate.notEmpty(list, "列表不能为空");// 验证表达式为true
Validate.isTrue(count > 0, "计数必须大于0");
参考文献
1. 官方主页
- Apache Commons Lang 官网
2. 官方文档
- Apache Commons Lang3 JavaDoc (最新版本)
- Apache Commons Lang3 用户指南
结语
Apache Commons Lang3 提供了大量实用的工具方法,可以显著减少开发者的样板代码,提高开发效率。本文介绍了其中最常用的方法,但 Lang3 的功能远不止于此。建议开发者查阅官方文档,了解更多高级用法。
在实际项目中合理使用这些工具类,可以让代码更加简洁、健壮和可维护。但也要注意不要过度依赖第三方库,对于简单的功能,有时自己实现可能更合适。