在 Java 中,对文件、文件夹打包压缩是一件很繁琐的事情,Hutool 封装的 ZipUtil 针对 java.util.zip 包做了优化,可以使用一个方法搞定压缩和解压,并且自动处理文件和目录的问题,不再需要用户判断,大大简化的压缩解压的复杂度。
ZipUtil.zip("hutool", "hutool.zip");File unzip = ZipUtil.unzip("hutool.zip", "hutoolzip");
08、身份证工具
Hutool 封装的 IdcardUtil 可以用来对身份证进行验证,支持大陆 15 位、18 位身份证,港澳台 10 位身份证。
String ID_18 = "321083197812162119";String ID_15 = "150102880730303";
boolean valid = IdcardUtil.isValidCard(ID_18);
boolean valid15 = IdcardUtil.isValidCard(ID_15);
09、扩展 HashMap
Java 中的 HashMap 是强类型的,而 Hutool 封装的 Dict 对键的类型要求没那么严格。
Dict dict = Dict.create().set("age", 18)
.set("name", "沉默王二")
.set("birthday", DateTime.now());
int age = dict.getInt("age");
String name = dict.getStr("name");
10、控制台打印
本地编码的过程中,经常需要使用 System.out 打印结果,但是往往一些复杂的对象不支持直接打印,比如说数组,需要调用 Arrays.toString。Hutool 封装的 Console 类借鉴了 JavaScript 中的 console.log(),使得打印变成了一个非常便捷的方式。
/*** @author 微信搜「沉默王二」,回复关键字 PDF
*/
public class ConsoleDemo {
public static void main(String[] args) {
// 打印字符串
Console.log("沉默王二,一枚有趣的程序员");
// 打印字符串模板
Console.log("洛阳是{}朝古都",13);
int [] ints = {1,2,3,4};
// 打印数组
Console.log(ints);
}
}
11、字段验证器
做 Web 开发的时候,后端通常需要对表单提交过来的数据进行验证。Hutool 封装的 Validator 可以进行很多有效的条件验证:
是不是邮箱
是不是 IP V4、V6
是不是电话号码
等等
Validator.isEmail("沉默王二");Validator.isMobile("itwanger.com");
12、双向查找 Map
Guava 中提供了一种特殊的 Map 结构,叫做 BiMap,实现了一种双向查找的功能,可以根据 key 查找 value,也可以根据 value 查找 key,Hutool 也提供这种 Map 结构。
BiMap<String, String> biMap = new BiMap<>(new HashMap<>());biMap.put("wanger", "沉默王二");
biMap.put("wangsan", "沉默王三");
// get value by key
biMap.get("wanger");
biMap.get("wangsan");
// get key by value
biMap.getKey("沉默王二");
biMap.getKey("沉默王三");