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
相关推荐
疯狂成瘾者10 小时前
语义分块提升RAG检索精度
python
小陈工12 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
一定要AK16 小时前
Spring 入门核心笔记
java·笔记·spring
A__tao16 小时前
Elasticsearch Mapping 一键生成 Java 实体类(支持嵌套 + 自动过滤注释)
java·python·elasticsearch
研究点啥好呢16 小时前
Github热门项目推荐 | 创建你的像素风格!
c++·python·node.js·github·开源软件
KevinCyao16 小时前
java视频短信接口怎么调用?SpringBoot集成视频短信及回调处理Demo
java·spring boot·音视频
航Hang*16 小时前
Windows Server 配置与管理——第3章:文件系统管理
运维·服务器·windows·vmware
迷藏49416 小时前
**发散创新:基于Rust实现的开源合规权限管理框架设计与实践**在现代软件架构中,**权限控制(RBAC)** 已成为保障
java·开发语言·python·rust·开源
明日清晨17 小时前
python扫码登录dy
开发语言·python
bazhange17 小时前
python如何像matlab一样使用向量化替代for循环
开发语言·python·matlab