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
相关推荐
sc_yhsheng5 分钟前
18j621-3通风天窗图集pdf(免费高清版)
windows·pdf
烟锁池塘柳023 分钟前
【已解决,亲测有效】解决使用Python Matplotlib库绘制图表中出现中文乱码(中文显示为框)的问题的方法
开发语言·python·matplotlib
周小码25 分钟前
llama-stack实战:Python构建Llama应用的可组合开发框架(8k星)
开发语言·python·llama
pianmian127 分钟前
Spring 项目骨架
java·后端·spring
IT学长编程30 分钟前
计算机毕业设计 基于Hadoop的南昌房价数据分析系统的设计与实现 Python 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试
大数据·hadoop·python·毕业设计·课程设计·毕业论文·豆瓣电影数据可视化分析
麦兜*31 分钟前
Docker 部署 MongoDB:单节点与副本集的最佳实践
java·spring boot·mongodb·spring cloud·docker·容器·maven
小小怪KO34 分钟前
分布式锁解决集群下一人一单超卖问题
java·分布式·tomcat·后端开发·实习·黑马点评
郑洁文42 分钟前
豆瓣网影视数据分析与应用
大数据·python·数据挖掘·数据分析
程序员TNT1 小时前
Shoptnt 促销计算引擎详解:策略模式与责任链的完美融合
linux·windows·策略模式
智码看视界1 小时前
老梁聊全栈系列:(阶段一)从单体到云原生的演进脉络
java·云原生·c5全栈