1.Hutool简介
Hutool是一个小而全的Java工具类库,它帮助我们简化每一行代码,避免重复造轮子。如果你有需要用到某些工具类的时候,不妨在Hutool里面找找。
模块 | 介绍 |
---|---|
hutool-aop | JDK 动态代理封装,提供非 IOC 下的切面支持。 |
hutool-bloomFilter | 布隆过滤,提供一些 Hash 算法的布隆过滤。 |
hutool-cache | 简单缓存实现。 |
hutool-core | 核心,包括 Bean 操作、日期、各种Util等。 |
hutool-cron | 定时任务模块,提供类 Crontab 表达式的定时任务。 |
hutool-crypto | 加密解密模块,提供对称、非对称和摘要算法封装。 |
hutool-db | JDBC 封装后的数据操作,基于 ActiveRecord思想。 |
hutool-dfa | 基于 DFA 模型的多关键字查找。 |
hutool-extra | 扩展模块,对第三方封装(模板引擎、邮件、Servlet、二维码、Emoji、FTP、分词等)。 |
hutool-http | 基于 HttpUrlConnection 的 Http 客户端封装。 |
hutool-log | 自动识别日志实现的日志门面。 |
hutool-script | 脚本执行封装,例如 Javascript。 |
hutool-setting | 功能更强大的 Setting 配置文件和 Properties 封装。 |
hutool-system | 系统参数调用封装(JVM 信息等)。 |
hutool-json | JSON 实现。 |
hutool-captcha | 图片验证码实现。 |
hutool-poi | 针对 POI 中 Excel 和 Word 的封装。 |
hutool-socket | 基于 Java 的 NIO 和 AIO 的 Socket 封装。 |
hutool-jwt | JSON Web Token(JWT)封装实现。 |
2.Hutool安装
Hutool的安装非常简单,Maven项目中只需在pom.xml添加以下依赖即可。
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.9</version>
</dependency>
3.常用工具类
使用一个工具方法代替一段复杂代码,避免复制粘贴
代码,可以极大的提高我们的开发效率,下面介绍下我常用的工具方法!
3.1判断字符串是否为空
//判断字符串是否为空
String str="Hello Hutool";
boolean empty = StrUtil.isEmpty(str);
System.out.println(empty);//false
boolean blank = StrUtil.isBlank(str);
System.out.println(blank);//false
3.2字符串拼接
//字符串拼接
String result = StrUtil.join(", ", "a", "b", "c");
System.out.println(result); // "a, b, c"
3.3字符串分割
//字符串分割
List<String> list = StrUtil.split("a, b, c", ','); // ["a", "b", "c"]
3.4字符串替换
//字符串替换
String result = StrUtil.replace("Hello World", "World", "Hutool"); // "Hello Hutool"
3.5判断集合是否为空
//判断集合是否为空
List<String> list = Arrays.asList("a", "b", "c");
boolean isEmpty = CollUtil.isEmpty(list); // false
boolean isNotEmpty = CollUtil.isNotEmpty(list); // true
3.6集合去重
//集合去重
List<String> list = Arrays.asList("a", "b", "a");
List<String> result = CollUtil.distinct(list); // ["a", "b"]
System.out.println(result);
3.7获取当前时间
//获取当前时间
Date now = DateUtil.date(); // 当前时间
String nowStr = DateUtil.now(); // 当前时间字符串
3.8格式化日期
//格式化日期
Date date = DateUtil.parse("2024-10-10");
String formattedDate = DateUtil.format(date, "yyyy/MM/dd"); // "2024/10/10"
System.out.println(formattedDate);
3.9日期加减
//日期加减
Date date = DateUtil.date();
Date newDate = DateUtil.offsetDay(date, 5); // 当前日期加5天
Date fiveDaysAgo = DateUtil.offsetDay(date, -5); // 当前日期减5天
3.10MD5加密
//md5加密
String md5 = SecureUtil.md5("password");
3.11AES加密解密
//AES加密解密
AES aes = SecureUtil.aes();
String encrypted = aes.encryptHex("Hello Hutool");
String decrypted = aes.decryptStr(encrypted);
System.out.println(encrypted);
System.out.println(decrypted);
3.12Validator验证
//判断是否为邮箱地址
boolean result = Validator.isEmail("489707304@qq.com");
log.info("Validator isEmail:{}", result);
//判断是否为手机号码
result = Validator.isMobile("18835755555");
log.info("Validator isMobile:{}", result);
//判断是否为IPV4地址
result = Validator.isIpv4("127.0.0.1");
log.info("Validator isIpv4:{}", result);
//判断是否为汉字
result = Validator.isChinese("你好");
log.info("Validator isChinese:{}", result);
//判断是否为身份证号码(18位中国)
result = Validator.isCitizenId("123456");
log.info("Validator isCitizenId:{}", result);
//判断是否为URL
result = Validator.isUrl("http://www.baidu.com");
log.info("Validator isUrl:{}", result);
//判断是否为生日
result = Validator.isBirthday("2024-10-10");
log.info("Validator isBirthday:{}", result);