【Java】Hutool——Java 开发的万能工具库,告别重复造轮子

日常做 Java 后端开发时,我们总会反复写类型转换、日期处理、文件读写、手机号校验这类通用工具方法,每次新建项目都要复制一堆工具类,繁琐还容易出 BUG。最近深耕工具类库,发现Hutool几乎包揽了开发中 80% 的通用操作,封装简洁、API 易懂,今天结合实战代码,分享 Hutool 常用工具。

一、Maven 快速引入依赖

使用 Hutool 最简单的方式就是 Maven 引入,推荐使用全量依赖,小项目无需逐个导入子模块:

<!-- Hutool全量依赖 -->
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.24</version>
</dependency>

Gradle 项目直接:implementation 'cn.hutool:hutool-all:5.8.24'

二、常用工具类实战演示

1. Convert:万能类型转换器

传统 Java 类型转换需要手动判空、捕获异常,Convert 自带默认值兜底,避免空指针:

import cn.hutool.core.convert.Convert;

public class ConvertDemo {
    public static void main(String[] args) {
        // 字符串转int,转换失败返回默认值0
        int num = Convert.toInt("123",0);
        int errNum = Convert.toInt("abc",0);
        System.out.println(num);    // 123
        System.out.println(errNum); // 0

        // 数组转集合
        String[] arr = {"Java","MySQL","Linux"};
        List<?> list = Convert.toList(arr);
        System.out.println(list);
    }
}

2. DateUtil:日期处理神器

原生 Date、SimpleDateFormat 线程不安全、代码冗长,DateUtil 一行搞定日期格式化、日期偏移、时间差计算:

import cn.hutool.core.date.DateUtil;
import java.util.Date;

public class DateDemo {
    public static void main(String[] args) {
        // 获取当前日期字符串
        String now = DateUtil.now();
        System.out.println("当前时间:"+now);

        // 字符串转日期
        Date parseDate = DateUtil.parse("2026-06-02");

        // 加3天
        Date after3Day = DateUtil.offsetDay(parseDate,3);
        System.out.println("三天后:"+DateUtil.formatDate(after3Day));

        // 计算两个日期相差天数
        long day = DateUtil.betweenDay(new Date(),after3Day,true);
        System.out.println("间隔天数:"+day);
    }
}

3. StrUtil:字符串工具,替代 StringUtils

判空、截取、拼接、去空格全封装,开发高频使用:

import cn.hutool.core.util.StrUtil;

public class StrDemo {
    public static void main(String[] args) {
        String str1 = "";
        String str2 = null;
        String str3 = " Hutool ";
        // 判断空串/Null
        System.out.println(StrUtil.isBlank(str1)); // true
        System.out.println(StrUtil.isBlank(str2)); // true
        System.out.println(StrUtil.isNotBlank(str3));//true

        // 去除首尾空格
        String trim = StrUtil.trim(str3);
        System.out.println(trim);
    }
}

4. IdcardUtil:身份证信息校验与解析

做实名认证需求必备,支持 18 位大陆身份证、老版 15 位身份证校验:

import cn.hutool.core.util.IdcardUtil;

public class IdCardDemo {
    public static void main(String[] args) {
        String idCard = "3401*********1234";
        // 校验身份证合法性
        boolean valid = IdcardUtil.isValidCard(idCard);
        System.out.println("身份证是否合法:"+valid);
        // 获取出生年月日
        String birth = IdcardUtil.getBirthByIdCard(idCard);
        System.out.println("出生日期:"+birth);
    }
}

5. SecureUtil:加解密工具

MD5、AES、RSA 等常用加密一行调用,不用手动实现加密算法:

import cn.hutool.crypto.SecureUtil;

public class EncryptDemo {
    public static void main(String[] args) {
        String password = "123456";
        // MD5加密
        String md5 = SecureUtil.md5(password);
        System.out.println("密码MD5:"+md5);
    }
}

6. Dict:灵活扩展 Map

Dict 继承 HashMap,键不限制类型,常用在接口参数封装:

import cn.hutool.core.lang.Dict;

public class DictDemo {
    public static void main(String[] args) {
        Dict dict = Dict.create()
                .set("username","云扬")
                .set("blog","yunyanglib.cn")
                .set("age",22);
        System.out.println(dict.getStr("username"));
        System.out.println(dict);
    }
}

三、小众但实用的工具类

  1. FileUtil/IoUtil:文件创建、复制、删除、流关闭,不用手动关闭 IO 流,自动释放资源;
  2. Validator:手机号、邮箱、IP 地址正则校验,Validator.isMobile("138xxxx1234")直接判断;
  3. QrCodeUtil:快速生成二维码,不用引入第三方二维码依赖;
  4. ZipUtil:文件夹批量压缩解压,处理附件打包超方便。

Tags:

发表回复

Your email address will not be published. Required fields are marked *.

*
*