java开发常用工具类(持续更新...)

文章目录

一、apache.commons.lang3

引入依赖

java 复制代码
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version>
</dependency>

1、StringUtils字符串工具类

1.1、判断字符串是否为空

java 复制代码
// 判断传入的多个字符串是否为null或者长度有0
StringUtils.isAllEmpty(null, "    "); // false

// 判断传入的字符串是否为null或者长度有0
StringUtils.isEmpty(""); // true

// 判断传入的字符串==null或者字符串不存在非空白字符,返回true
StringUtils.isBlank(" "); // true

1.2、截取字符串

java 复制代码
// 返回从0到str.length-1位置的字符串(删除最后一位)
StringUtils.chop("abc3"); // abc

// 截取字符串尾部指定的字符串
StringUtils.removeEnd("10086.jpg", ".jpg"); // 10086

// left、right从左(右)开始截取n位字符
StringUtils.left("abc", 2); // ab
StringUtils.right("abc", 2); // bc

// 从第n位开始截取m位字符       n  m
StringUtils.mid("abcdefg", 2, 4); // cdef

1.3、判断字符串内容类型

java 复制代码
// 全由数字组成返回True
StringUtils.isNumeric("123"); // true

// 全由字母组成返回True.
StringUtils.isAlpha("abc"); // true

2、ObjectUtils工具类

2.1、判断对象是否为空

java 复制代码
// 检查对象是否为空,支持:CharSequence、Array、Collection、Map
ObjectUtils.isNotEmpty(null); // false
ObjectUtils.isEmpty(Arrays.asList()); // true

2.2、对象为null返回默认值

java 复制代码
// 如果传递的对象是 null,则返回默认值
String string = ObjectUtils.defaultIfNull(null, "123"); // 123

3、DateUtils日期工具类

3.1、日期加减法

java 复制代码
// 年份加一年
DateUtils.addYears(new Date(), 1);
// 天数减两天
DateUtils.addDays(new Date(), -2);
// 小时加两小时
DateUtils.addHours(new Date(), 2);
// 分钟减两分钟
DateUtils.addMinutes(new Date(), -2);
// 毫秒加两毫秒
DateUtils.addMilliseconds(new Date(), 2);
// 秒数加两秒
DateUtils.addSeconds(new Date(), 2);

二、google.guava

引入依赖

java 复制代码
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>32.1.3-jre</version>
</dependency>

1、普通集合

java 复制代码
List<String> list = Lists.newArrayList();
Set<String> set = Sets.newHashSet();
Map<String, String> map = Maps.newHashMap();

2、不可变集合(immutable)

  • 与普通的集合(如List、Set、Map)相比,Immutable Collections在初始化后无法对其做任何修改
  • 这样可以确保数据的一致性和安全性
java 复制代码
List<Integer> iList = ImmutableList.of(12,54,87);
// iList.add(123); // 这将引发UnsupportedOperationException异常
Set<Integer> iSet = ImmutableSet.of(354,54,764,354);
Map<String, Integer> iMap = ImmutableMap.of("k1", 453, "k2", 534);

3、下划线与驼峰相互转换

java 复制代码
// 中划线转驼峰
CaseFormat.LOWER_HYPHEN.to(CaseFormat.LOWER_CAMEL, "test-data"); // testData
// 下划线转驼峰
CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, "test_data"); // testData
// 下划线转首字母大写的驼峰
CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, "test_data"); // TestData
// 首字母大写驼峰转下划线
CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, "TestData"); // test_data
// 驼峰转中划线
CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_HYPHEN, "testData"); // test-data
相关推荐
rosmis8 分钟前
agent各指标定义
android·java·开发语言
mifengxing10 分钟前
Java 集合进阶(一)
java·开发语言·数据结构·复习笔记
名字还没想好☜25 分钟前
Python concurrent.futures 实战:用 ThreadPoolExecutor 并发处理 + as_completed 收结果
数据库·python·php·并发
爱码小白33 分钟前
importlib模块
开发语言·前端·python
sukalot38 分钟前
windows网络适配器驱动开发-WiFiCx Wi-Fi 7 功能要求(二)
windows·驱动开发
令狐前生1 小时前
Intellij IDEA 2025 破解安装
java·ide·intellij-idea
axinawang1 小时前
第25课 for循环的应用
python
逻极1 小时前
FastAPI 实战:从入门到自动化文档,如何把API开发效率提升200%
python·api·fastapi·swagger·异步
数聚天成DeepSData1 小时前
数聚天成 DeepSData 数据价值落地实战指南
java·maven·devops
小小小米粒1 小时前
阿姆达尔定律(Amdahl‘s Law)
java·开发语言