Java工具类用的好,早点码完早点跑

Java工具类用的好,早点码完早点跑

随着编写大量的代码,突然发现有些代码业务实际不负责,只是一遍遍的处理各种数据,各种转换占据着我们大量的时间,字符串截取,转换格式,判空,字符替换,日期格式转换,数组集合各种判断等等,既拉低效率也使代码变得臃肿,针对这种情况,可以用工具类替换自己实现的这些繁琐的逻辑,大家有需要的可以看看哦!

常用工具类

在这里插入图片描述

1.字符串工具类

导入依赖:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.10</version>
</dependency>

有兴趣的同学可以研究一下这个类:

org.apache.commons.lang3.StringUtils
1.1字符串判空
StringUtils.isEmpty(str){}
1.2字符串补位

这个通常用于字符串需要固定长度的场景,比如需要固定长度字符串作为流水号,若流水号长度不够,左边补 0 ,我以前是先判断字符串长度,然后再加上缺少的位数,少年,该提高了_

// 字符串固定长度 8位,若不足,往左补 0,rightPad往右补 0
StringUtils.leftPad("test", 8, "0");
1.3字符串拼接

字符串拼接的写法

String[] array = new String[]{"test", "1234", "5678"};
StringBuilder stringBuilder = new StringBuilder();
for (String s : array) {
    stringBuilder.append(s).append(";");
}
// 防止最终拼接字符串为空 
if (stringBuilder.length() > 0) {
    stringBuilder.deleteCharAt(stringBuilder.length() - 1);
}
System.out.println(stringBuilder.toString());

1.4字符串替换

替换一般都是这样写滴。

 // 默认替换所有关键字
StringUtils.replace("aba", "a", "z")   = "zbz";
// 替换关键字,仅替换一次
StringUtils.replaceOnce("aba", "a", "z")   = "zba";
// 使用正则表达式替换
StringUtils.replacePattern("ABCabc123", "[^A-Z0-9]+", "")   = "ABC123"

2.数组工具类

org.apache.commons.lang.ArrayUtils

数组判空

// 数组判空
if (ArrayUtils.isEmpty(array)) {   
}

除此之外,还有 isEquals:比较数组是否相等 ; contains:是否包含某字符串 ; clone:克隆一个数组 等方法,有兴趣的同学可以研究下。

3.集合工具类

导入依赖:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>4.4</vesion>
</dependency>

我们可以使用 CollectionUtils/MapUtils对集合进行判空判断,再也不用使用 list.size()>0 判空了。

// List/Set 集合判空
if(CollectionUtils.isEmpty(list)){

}
// Map 等集合进行判空
if (MapUtils.isEmpty(map)) {
    
}

4.日期工具类

哈哈,我猜你是这样写的

 SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// Date 转 字符串
simpleDateFormat.format(new Date());
// 字符串 转 Date
simpleDateFormat.parse("2020-05-07 22:00:00");

但是这里需要注意 SimpleDateFormat,不是线程安全的,多线程环境一定要注意使用安全。

这里我推荐 commons-lang3 下的时间工具类DateUtils/DateFormatUtils,解决 Date 与字符串转化问题。

代码:

// Date 转化为字符串
DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss");
// 字符串 转 Date
DateUtils.parseDate("2020-05-07 22:00:00","yyyy-MM-dd HH:mm:ss");

除了格式转化之外,DateUtils 还提供时间计算的相关功能。

Date now = new Date();
// Date 加 1 天
Date addDays = DateUtils.addDays(now, 1);
// Date 加 33 分钟
Date addMinutes = DateUtils.addMinutes(now, 33);
// Date 减去 233 秒
Date addSeconds = DateUtils.addSeconds(now, -233);
// 判断是否 Wie 同一天
boolean sameDay = DateUtils.isSameDay(addDays, addMinutes);
// 过滤时分秒,若 now 为 2020-05-07 22:13:00 调用 truncate 方法以后
// 返回时间为 2020-05-07 00:00:00
Date truncate = DateUtils.truncate(now, Calendar.DATE);

此外,还有以下工具类,了解工具类开发起来事半功倍,还没研究的同学都应该打开源码研究一下:

IO流工具类:

org.apache.commons.io.IOUtils

文件工具类:

org.apache.commons.io.FileUtils

集合工具类:

org.apache.commons.collections.CollectionUtils

PS:
我的公众号,一个专注于面试通关和优质项目的技术型公众号,关注一下吧
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值