女神联盟2
796.59MB · 2025-09-29
本文介绍了Hutool工具的常用API用法。
Hutool是一个第三方Java工具类库,通过静态方法封装,提高开发效率,减少代码冗余和潜在Bug。
hutool官网文档:hutool.cn/docs/#/
引入依赖
<!-- hutool工具包 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.29</version>
</dependency>
import cn.hutool.core.convert.Convert;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.StrUtil;
public static void main(String[] args) {
// 判断字符串是否为空(null 或空白)
System.out.println(CharSequenceUtil.isBlank("")); //输出 true
System.out.println(StrUtil.isBlank("")); // true
System.out.println(StrUtil.isNotBlank(" ")); // false
// 字符串格式化
System.out.println(StrUtil.format("姓名:{},年龄:{}", "张三", 25)); // 姓名:张三,年龄:25
// 替换字符串
System.out.println(StrUtil.replace("2025-01-01", "-", "/")); // 2025/01/01
// 隐藏中间部分字符
System.out.println(StrUtil.hide("张三李四王五", 1, 4)); // 张***王五
// 类型转换
System.out.println(Convert.convert(String.class,"张三")); //输出 张三
System.out.println(Convert.toStr(123456789, "默认值")); // 123456789
System.out.println(Convert.toInt("123abc", 0)); // 123(忽略非数字部分)
}
import cn.hutool.core.collection.CollUtil;
public static void main(String[] args) {
// 创建集合
List<String> list = CollUtil.newArrayList("A", "B", "C");
Map<String, Integer> map = MapUtil.newHashMap();
map.put("Java", 10);
map.put("Python", 8);
// 判断集合是否为空
System.out.println(CollUtil.isEmpty(list)); // false
System.out.println(CollUtil.isNotEmpty(map)); // true
// 获取子集
List<String> subList = CollUtil.sub(list, 0, 2);
System.out.println(subList); // [A, B]
// 集合去重
List<Integer> nums = CollUtil.newArrayList(1, 2, 2, 3);
Set<Integer> uniqueSet = CollUtil.newHashSet(nums);
System.out.println(uniqueSet); // [1, 2, 3]
}
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateField;
public static void main(String[] args) {
// 当前时间
DateTime now = DateTime.now();
System.out.println(now); // 2025-07-01 12:34:56
// 格式化日期
System.out.println(DateUtil.format(now, "yyyy-MM-dd HH:mm:ss")); // 2025-07-01 12:34:56
// 时间偏移 这里是一月中的第几天
DateTime tomorrow = now.offsetNew(DateField.DAY_OF_MONTH, 1);
System.out.println(tomorrow); // 2025-07-02 12:34:56
// 日期比较
System.out.println(now.isAfter(tomorrow)); // false
System.out.println(now.isBefore(tomorrow)); // true
}
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import cn.hutool.json.JSONArray;
public static void main(String[] args) {
// 解析 JSON 字符串
String jsonStr = "{"name":"2","age":12,"detailInfo":[{"address":"北京", "phone": "12345678"}]}";
JSONObjectjsonObject = JSONUtil.parseObj(jsonStr);//字符串必须是{}这种格式
System.out.println(jsonObject.getStr("name")); //输出 2
System.out.println(jsonObject.getJSONArray("detailInfo")); //输出 [{"address":"北京","phone":"12345678"}]
// 创建 JSON 对象
JSONObject newJson = JSONUtil.createObj().set("id", 1001).set("status", "active");
System.out.println(newJson.toString()); // {"id":1001,"status":"active"}
// 创建 JSON 数组
String jsonStr2 = "[{"name":"2","age":12}]";
JSONArray jsonArray = JSONUtil.parseArray(jsonStr2); //[{开头
System.out.println(jsonArray.getJSONObject(0).getStr("name")); //输出 2
// 将 JSON 数组转换成字符串
String jsonStr1 = JSONUtil.toJsonStr(jsonArray);
System.out.println(jsonStr1); //输出 [{"name":"2","age":12}]
// Bean 转 Map
User user = new User();
user.setName("test");
user.setAge(100);
Map<String, Object> userMap = BeanUtil.beanToMap(user);
System.out.println(userMap); // 输出 {name=test, age=100}
// Map 转 Bean
User newUser = BeanUtil.toBean(userMap, User.class);
System.out.println(newUser.getName()); // 输出 test
}
static class User {
private String name;
privateint age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime;
import cn.hutool.jwt.JWT;
import cn.hutool.jwt.JWTPayload;
import cn.hutool.jwt.JWTUtil;
import java.util.HashMap;
import java.util.Map;
public static void main(String[] args) {
String KEY = "secret_key"; // 密钥
Map<String, Object> payload = new HashMap<>();
DateTime now = DateTime.now();
payload.put(JWTPayload.ISSUED_AT, now);
payload.put(JWTPayload.EXPIRES_AT, now.offsetNew(DateField.HOUR, 24)); // 24小时后过期
payload.put(JWTPayload.NOT_BEFORE, now);
payload.put("userid", "xx");
payload.put("username", "xxx");
String token = JWTUtil.createToken(payload, KEY.getBytes());
System.out.println("生成的 Token:" + token); // 输出 eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOjE2MjEyMjEyMjIsImV4cCI6MTYyMTIyMjIyMiwibm90X2JlZm9yZSI6MTYyMTIyMjIyMiwic3ViIjoieHh4In0.XxXxXxXxXxXxXxXxXxXxXxXxXxXxXx
JWT jwt = JWTUtil.parseToken(token).setKey(KEY.getBytes());
boolean verify = jwt.verify();// 验证token是否有效
System.out.println("Token 是否有效:" + verify); // 输出 true
System.out.println("用户名:" + jwt.getPayload("username")); // 输出 xxx
}
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.digest.MD5;
public static void main(String[] args) {
// MD5 加密
System.out.println(SecureUtil.md5("test")); //输出 098f6bcd4621d373cade4e832627b4f6
// MD5 生成文件摘要
MD5 md5 = SecureUtil.md5();
System.out.println(md5.digestHex("1")); //输出 c4ca4238a0b923820dcc509a6f75849b
// SHA-256 加密
System.out.println(SecureUtil.sha256("test")); //输出 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
}
以上我们了解了hutool常用的6类API,字符串、集合、日期、JSON串、token及加密,更多API用法可直接访问官网doc地址。
在这里,我们专注于软件技术的交流与成长,分享开发心得与笔记,涵盖编程、AI、资讯、面试等多个领域。无论是前沿科技的探索,还是实用技巧的总结,我们都致力于为大家呈现有价值的内容。期待与你共同进步,开启技术之旅。