hutool工具类的使用

Hutool是一个Java基础工具库,提供了包括文件、流、加密解密、日期时间、正则表达式、线程、XML等操作的封装。本文主要介绍了Hutool的常用功能,如对象验证、日期时间转换、实体类操作、字符串判断和格式化,以及MD5加密和唯一ID生成等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hutool 工具类常用的方法

简介:官网|文档
一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时提供以下组件:

模块介绍
hutool-aopJDK动态代理封装,提供非IOC下的切面支持
hutool-bloomFilter布隆过滤,提供一些Hash算法的布隆过滤
hutool-cache简单缓存实现
hutool-core核心,包括Bean操作、日期、各种Util等
hutool-cron定时任务模块,提供类Crontab表达式的定时任务
hutool-crypto加密解密模块,提供对称、非对称和摘要算法封装
hutool-dbJDBC封装后的数据操作,基于ActiveRecord思想
hutool-dfa基于DFA模型的多关键字查找
hutool-extra扩展模块,对第三方封装(模板引擎、邮件、Servlet、二维码、Emoji、FTP、分词等)
hutool-http基于HttpUrlConnection的Http客户端封装
hutool-log自动识别日志实现的日志门面
hutool-script脚本执行封装,例如Javascript
hutool-setting功能更强大的Setting配置文件和Properties封装
hutool-system系统参数调用封装(JVM信息等)
hutool-jsonJSON实现
hutool-captcha图片验证码实现
hutool-poi针对POI中Excel和Word的封装
hutool-socket基于Java的NIO和AIO的Socket封装
hutool-jwtJSON Web Token (JWT)封装实现

导入依赖

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.5.8</version>
</dependency>

一、常用的操作

###1. 判断邮箱

判断给定字符串是否符合电子邮箱格式

boolean isEmail = Validator.isEmail("loolly@gmail.com");

2. 验证对象是否为null

boolean isNull =Validator.isNotEmpty(new String());
ObjectUtil.isNotEmpty(null); // 对象不为空返回 true
ObjectUtil.isEmpty(); //对象为null返回true

3. 字符串转日期对象

String dateStr = "2017-05-06";
Date date = Convert.toDate(dateStr);

4. 数列转换List列表

String[] strArr = {"a", "b", "c", "d"};
List<String> strList = Convert.toList(String.class, strArr);

5. 字符串格式化输出

String template = "这只是个占位符:{}";
String str2 = StrUtil.format(template, "1");
//这只是个占位符:1

6. 判断是否非数字

String n3 = "1.234";
NumberUtil.isNumber(n3);//判断是否为数字
NumberUtil.isInteger(n3);//判断是否为整数
NumberUtil.isDouble(n3);//判断是否为浮点数

7. 实体类转换Map集合

PmsBrand brand = new PmsBrand();
brand.setId(1L);
brand.setName("华为");
brand.setShowStatus(0);

Map<String, Object> map = BeanUtil.beanToMap(brand);	
PmsBrand mapBrand = BeanUtil.mapToBean(map, PmsBrand.class, false); //反过来

8.判断集合是否为空

List<String> list=new ArrayList<>();
CollectionUtils.isNotEmpty(list);

二、DateUtil日期时间工具类

1. 字符串格式转换成Date

可以自动识别字符串样式将字符串转换成为date类型

String dateStr = "2017-03-01";
date = DateUtil.parse(dateStr);

2. 时间戳转Date

date = DateUtil.date(System.currentTimeMillis());

3. 格式化输出日期字符串

String format = DateUtil.format(date, "yyyy-MM-dd");

4. 获取日期对象的年月日

// 获取年份
int year = DateUtil.year(date);
//获得月份,从0开始计数  +1获取当前月份
int month = DateUtil.month(date);

5. 计算年龄

也可以用于计算两年相隔多少年(两个时间段间隔多少年)

DateUtil.age(date,new Date())

6. 时间相加

  • DateField.YEAR 年份相加
  • DateField.HOUR 小时相加
  • DateField.WEEK_OF_YEAR 年份相加
  • 有of的是按照指定规则相加的;如年,在周的基础上相加
  • 没有of的如年,只在年份上进行相加
Date newDate = DateUtil.offset(date, DateField.DAY_OF_MONTH, 100);

7. 计算两个时间间隔

  • DateUnit.DAY 计算间隔多少天
  • DateUnit.WEEK 计算间隔多少周,即当天减去7天后的时间算一周
  • DateUnit.HOUR 计算间隔多少小时
  • DateUnit.MINUTE 计算间隔多少分钟
  • DateUnit.MS 计算间隔多少秒
long betweenDay = DateUtil.between(date, newDate, DateUnit.DAY);

三、实体类工具类

1. 实体类互转

BeanUtil.toBean(new User(), UserVo.class))

2. 实体类列表互转

// 将User实体类列表转变为 UserVo实体类列表
List<User> users= new ArrayList<>();
users.stream().map(user-> BeanUtil.toBean(user, UserVo.class)).collect(Collectors.toList());

其他功能

1. 数字转换成中文大写

double a = 123456.01;
System.out.println(Convert.digitToChinese(a));//壹拾贰万叁仟肆佰伍拾陆元零壹分

2. 判断字符串是否为null

StrUtil.isEmpty(str);
StrUtil.isNotEmpty(str);

3. MD5 加密工具

String str = "123456";
String md5Str = SecureUtil.md5(str);

4.唯一ID工具

在Hutool中,生成一个UUID字符串方法如下:

//生成的UUID是带-的字符串,类似于:a5c8a5e8-df2b-4706-bea4-08d0939410e3
String uuid =IdUtil.randomUUID();
//生成的是不带-的字符串,类似于:b17f24ff026d40949c85a24f4f375d42
String simpleUUID =IdUtil.simpleUUID();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

StarLightLu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值