Hutool包常用工具类的使用

简介: Hutool包常用工具类的使用

🐓 简介

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


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


🐓 准备阶段

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

66dd41795c804adba9bde6bc5a784f5d.png

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

f239ae7c5d064c7eadb89f6bf7e1c062.png

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

20212cb6a2a0496e9570b2f1908e25f7.png

🐓 类型转换工具类-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);


相关文章
|
存储 Java 关系型数据库
JPA 注解及主键生成策略使用指南
JPA 注解及主键生成策略使用指南
1088 0
|
XML Java 应用服务中间件
SpringBoot项目打war包流程
本文介绍了将Spring Boot项目改造为WAR包并部署到外部Tomcat服务器的步骤。主要内容包括:1) 修改pom.xml中的打包方式为WAR;2) 排除Spring Boot内置的Tomcat依赖;3) 添加Servlet API依赖;4) 改造启动类以支持WAR部署;5) 打包和部署。通过这些步骤,可以轻松地将Spring Boot应用转换为适合外部Tomcat服务器的WAR包。
954 64
SpringBoot项目打war包流程
|
8月前
|
人工智能 安全 前端开发
AgentScope Java v1.0
AgentScope Java 1.0 正式发布,专为Java开发者打造企业级Agentic应用。采用ReAct范式,支持自主规划与实时干预,平衡智能与可控性。提供安全沙箱、上下文工程、多模态支持等开箱即用能力,深度集成企业技术栈,支持高性能、高可用生产部署。构建从开发、调试、A/B测试到评估优化的完整生态闭环,助力AI原生应用高效迭代。全面兼容MCP/A2A协议,支持阿里云百炼与函数计算一键部署,推动Agent应用迈入工业化时代。
|
NoSQL Java API
Redisson分布式锁使用详解
通过以上内容,您可以全面了解如何在Java项目中使用Redisson实现分布式锁,并根据不同的业务需求选择合适的锁机制。
1434 33
|
机器学习/深度学习 编解码 人工智能
当前VR技术的限制与挑战:深入剖析与未来展望
【8月更文挑战第26天】当前VR技术在技术、内容、市场等多个层面仍面临诸多限制与挑战。然而,随着技术的不断创新和市场的逐步成熟,这些限制和挑战将逐渐得到克服。未来,VR技术有望在更多领域发挥重要作用,为用户带来更加丰富、便捷的沉浸式体验。我们期待VR技术的持续进步和广泛应用,共同见证这一科技领域的辉煌未来。
1461 2
|
前端开发 JavaScript 开发者
利用 el-select 和 el-tree 实现树形结构多选框联动功能
本文详细介绍了如何使用ElementUI中的el-select下拉选择器和el-tree树形控件来实现多功能联动选择器,包括多选、删除、搜索、清空选项等功能。通过树形控件展示复杂的层级结构,用户可以通过下拉选择树形节点,实时搜索节点,且支持批量选择和删除功能。文中提供了完整的HTML、JavaScript和CSS代码实现,帮助开发者快速集成此功能。
6649 0
利用 el-select 和 el-tree 实现树形结构多选框联动功能
|
人工智能 自然语言处理 Java
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
文章介绍了Spring AI,这是Spring团队开发的新组件,旨在为Java开发者提供易于集成的人工智能API,包括机器学习、自然语言处理和图像识别等功能,并通过实际代码示例展示了如何快速集成和使用这些AI技术。
14183 4
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
|
XML 存储 Java
SpringBoot集成Flowable:构建强大的工作流引擎
在企业级应用开发中,工作流管理是核心功能之一。Flowable是一个开源的工作流引擎,它提供了BPMN 2.0规范的实现,并且与SpringBoot框架完美集成。本文将探讨如何使用SpringBoot和Flowable构建一个强大的工作流引擎,并分享一些实践技巧。
5289 0
|
SQL 前端开发 Java
SpringBoot 拦截器 统一结果返回 统一异常处理
SpringBoot 拦截器 统一结果返回 统一异常处理
1839 0

热门文章

最新文章