Hutool包常用工具类的使用

这篇文章介绍了Hutool,一个强大的Java工具库,它提供了一系列实用工具如类型转换、日期时间处理、文件操作、随机数生成、字符串处理、JavaBean映射以及网络工具,帮助开发者高效完成开发任务。
摘要由CSDN通过智能技术生成

 🐓 简介

Hutool是一个功能丰富且易用的Java工具库,通过诸多实用工具类的使用,旨在帮助开发者快速、便捷地完成各类开发任务。 这些封装的工具涵盖了字符串、数字、集合、编码、日期、文件、IO、加密、数据库JDBC、JSON、HTTP客户端等一系列操作, 可以满足各种不同的开发需求。

理念:Hutool既是一个工具集,也是一个知识库

 🐓 准备阶段

如果是练习的情况下可以使用插件进行maven的版本查找插件

下载完成之后,settings -> Tools -> Maven Search

选择最新的或者使用次数最多的版本,导入依赖

 🐓 类型转换工具类-Convert

 🚩 转换为字符串

int a = 1;
//aStr为"1"
String aStr = Convert.toStr(a);

long[] b = {1,2,3,4,5};
//bStr为:"[1, 2, 3, 4, 5]"
String bStr = Convert.toStr(b);

 🚩 转换为指定类型数组

String[] b = { "1", "2", "3", "4" };
//结果为Integer数组
Integer[] intArray = Convert.toIntArray(b);

long[] c = {1,2,3,4,5};
//结果为Integer数组
Integer[] intArray2 = Convert.toIntArray(c);

 🚩 转换为日期对象

String a = "2024-01-12";
Date value = Convert.toDate(a);

 🚩 转换为集合

Object[] a = {"a", "你", "好", "阿", 1};
List<?> list = Convert.convert(List.class, a);
//从4.1.11开始可以这么用
List<?> list = Convert.toList(a);

 🐓 日期时间工具类

 🚩 日期时间对象-DateTime

//当前时间
Date date = DateUtil.date();
//当前时间
Date date2 = DateUtil.date(Calendar.getInstance());
//当前时间
Date date3 = DateUtil.date(System.currentTimeMillis());
//当前时间字符串,格式:yyyy-MM-dd HH:mm:ss
String now = DateUtil.now();
//当前日期字符串,格式:yyyy-MM-dd
String today= DateUtil.today();
String dateStr = "2024-01-12";
Date date = DateUtil.parse(dateStr);

//结果 2024-01-12
String format = DateUtil.format(date, "yyyy/MM/dd");

//常用格式的格式化,结果:"2024-01-12"
String formatDate = DateUtil.formatDate(date);

//结果:2017-03-01 00:00:00
String formatDateTime = DateUtil.formatDateTime(date);

//结果:00:00:00
String formatTime = DateUtil.formatTime(date);

偏移日期时间

String dateStr = "2024-01-12 22:33:23";
Date date = DateUtil.parse(dateStr);

//结果:2024-01-12 22:33:23
Date newDate = DateUtil.offset(date, DateField.DAY_OF_MONTH, 2);

//常用偏移,结果:2024-01-13 00:33:23
DateTime newDate2 = DateUtil.offsetDay(date, 3);

//常用偏移,结果:2024-01-12 19:33:23
DateTime newDate3 = DateUtil.offsetHour(date, -3);

 🐓 IO流相关

 🚩 常用工具类

  文件

  文本读取-FileReader
//默认UTF-8编码,可以在构造中传入第二个参数做为编码
FileReader fileReader = new FileReader("test.properties");
String result = fileReader.readString();
  文本写入-FileWriter
FileWriter writer = new FileWriter("test.properties");
writer.write("test");
 文件名工具类-FileNameUtil
File file = FileUtil.file("/opt/test.txt");

// test.txt
String name = FileNameUtil.getName(file);

 🐓 工具类

 🚩 随机工具-RandomUtil

产生一个[10, 100)的随机数

int c = RandomUtil.randomInt(10, 100);

 🚩 唯一Id工具-IdUtil

生成一个UUID

//生成的UUID是带-的字符串,类似于:a5c8a5e8-df2b-4706-bea4-08d0939410e3
String uuid = IdUtil.randomUUID();

//生成的是不带-的字符串,类似于:b17f24ff026d40949c85a24f4f375d42
String simpleUUID = IdUtil.simpleUUID();

雪花算法Id

//参数1为终端ID
//参数2为数据中心ID
Snowflake snowflake = IdUtil.getSnowflake(1, 1);
long id = snowflake.nextId();

//简单使用
long id = IdUtil.getSnowflakeNextId();
String id = snowflake.getSnowflakeNextIdStr();

 🚩 字符串工具类-StrUtil

1.常用的方法isBlankisNotBlankisEmptyisNotEmpty 对字符串进行判空

2.removePrefix,removeSuffix取出字符串前后缀

String fileName = StrUtil.removeSuffix("pretty_girl.jpg", ".jpg")  //fileName -> pretty_girl

 🐓 JavaBean

Bean工具-BeanUtil 

Bean转Map

SubPerson person = new SubPerson();
person.setAge(14);
person.setOpenid("11213232");
person.setName("测试A11");
person.setSubName("sub名字");

Map<String, Object> map = BeanUtil.beanToMap(person);

bean转bean

SubPerson p1 = new SubPerson();
p1.setSlow(true);
p1.setName("测试");
p1.setSubName("sub测试");

Map<String, Object> map = MapUtil.newHashMap();

BeanUtil.copyProperties(p1, map);

 🐓 网络

 🚩 网络工具-NetUtil

String ip= "127.0.0.1";
long iplong = 2130706433L;

//根据long值获取ip v4地址
String ip= NetUtil.longToIpv4(iplong);


//根据ip地址计算出long型的数据
long ip= NetUtil.ipv4ToLong(ip);

//检测本地端口可用性
boolean result= NetUtil.isUsableLocalPort(6379);

//是否为有效的端口
boolean result= NetUtil.isValidPort(6379);

//隐藏掉IP地址
 String result =NetUtil.hideIpPart(ip);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

今天背单词了吗980

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

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

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

打赏作者

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

抵扣说明:

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

余额充值