AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
下面把 Hutool 5.x 最常用、面试/开发问得最多的 6 大类工具梳理成一张速查表,复制即可用。 (如需其它类别,再告诉我补充即可) | 类别 | 典型静态方法(链式/重载未全列) | 一句话作用 | 示例代码(极简) | |----|-----------------------------|------------|------------------| | 日期时间 DateUtil | `now()` / `today()` | 当前时间/日期字符串 | `String n = DateUtil.now();` | | | `parse(String)` | 任意格式→Date | `Date d = DateUtil.parse("2026-01-21 18:00");` | | | `format(Date, "yyyy-MM-dd")` | Date→自定义字符串 | `DateUtil.format(d, "MM/dd");` | | | `offsetDay(Date, ±n)` | 日期前后偏移 n 天 | `DateUtil.offsetDay(d, -7);` | | | `between(d1, d2, DateUnit.DAY)` | 两日期差(天/时/分) | `long days = DateUtil.between(d1,d2,DateUnit.DAY);` | | | `beginOfDay(Date)` / `endOfDay(Date)` | 获取某日 00:00:00 / 23:59:59 | `DateUtil.beginOfDay(d);` | | 字符串 StrUtil | `hasBlank(...)` | 多字符串任一空白 | `StrUtil.hasBlank(a, b);` | | | `removePrefix/Suffix` | 去前缀/后缀 | `StrUtil.removeSuffix(file, ".tmp");` | | | `sub(string, start, end)` | 安全子串(不抛异常) | `StrUtil.sub(str, 0, 8);` | | | `format(template, obj...)` | 占位符替换 | `StrUtil.format("Hi {}", name);` | | 类型转换 Convert | `toInt/Long/Double/Date/...` | 万能转目标类型 | `int age = Convert.toInt("18");` | | | `toStrArray / toList` | 数组/集合互转 | `List<String> list = Convert.toList(String.class, arr);` | | 数字 NumberUtil | `add/sub/mul/div(String, String)` | 高精度加减乘除 | `NumberUtil.add("0.1", "0.2");` | | | `round(double, 2)` / `formatPercent` | 保留小数/百分比 | `NumberUtil.round(3.1415, 2);` | | | `isNumber / isInteger` | 快速判断数字格式 | `NumberUtil.isNumber("123.45");` | | Bean 拷贝 BeanUtil | `copyProperties(source, Target::new)` | 对象属性复制 | `User u = BeanUtil.copyProperties(dto, User::new);` | | | `beanToMap / mapToBean` | Bean↔Map 互转 | `Map<?,?> map = BeanUtil.beanToMap(entity);` | | 集合 CollUtil | `newArrayList(...)` | 快速建可变 List | `List<String> ls = CollUtil.newArrayList("a", "b");` | | | `isEmpty / isNotEmpty` | 空集合判断 | `CollUtil.isEmpty(list);` | | | `partition(List, size)` | 按 size 切分批次 | `List<List<T>> batch = CollUtil.partition(list, 100);` | | 文件/IO FileUtil | `file(String)` / `readUtf8String` | 一行代码读文件 | `String txt = FileUtil.readUtf8String("a.txt");` | | | `writeUtf8String(String, File)` | 写文件 | `FileUtil.writeUtf8String("hi", new File("a.txt"));` | | | `copy / move / del` | 文件复制/移动/删除 | `FileUtil.copy(src, dest, true);` | | 加密 Digester | `DigestUtil.md5Hex / sha256Hex` | 快速 MD5/SHA | `String md5 = DigestUtil.md5Hex("123");` | | HTTP HttpUtil | `get / post` | 一行发 GET/POST | `String resp = HttpUtil.get("https://api.x.com");` | | JSON JSONUtil | `toJsonStr(obj)` | 对象→JSON 字符串 | `String j = JSONUtil.toJsonStr(user);` | | | `toBean(json, Class)` | JSON→对象 | `User u = JSONUtil.toBean(j, User.class);` | | 邮件* MailUtil | `send(to, subject, body, isHtml, File...)` | 发文本/Html/附件 | `MailUtil.send("a@qq.com", "Hi", "<h1>hello</h1>", true, file);` | | 二维码* QrCodeUtil | `generate(url, config, file)` | 生成二维码 | `QrCodeUtil.generate("https://x.cn", config, FileUtil.file("q.jpg"));` | > 带 * 工具需额外引入依赖(JavaMail、ZXing 等),其余只需 `hutool-all` 即可。 使用方法: 1. 先加依赖 ```xml <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.32</version> <!-- 写稿时最新 --> </dependency> ``` 2. 静态导入或直接 `类名.方法` 即可。 完整 API 见官方文档:https://www.hutool.cn/docs/