🐓 简介
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.常用的方法isBlank
、isNotBlank
、isEmpty
、isNotEmpty 对字符串进行判空
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);