Hutool介绍
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅。对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类。
提供一下组件:
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 扩展模块,对第三方封装(模板引擎、邮件等)
hutool-http 基于HttpUrlConnection的Http客户端封装
hutool-log 自动识别日志实现的日志门面
hutool-script 脚本执行封装,例如Javascript
hutool-setting 功能更强大的Setting配置文件和Properties封装
hutool-system 系统参数调用封装(JVM信息等)
hutool-json JSON实现
hutool-captcha 图片验证码实现
Hutool安装
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.16</version>
</dependency>
可以看到丰富的工具类
Hutool分类
日期工具
介绍
日期时间包是Hutool的核心包之一,提供针对JDK中Date和Calendar对象的封装,封装对象如下:
日期时间工具
DateUtil 针对日期时间操作提供一系列静态方法
DateTime 提供类似于Joda-Time中日期时间对象的封装,继承自Date类,并提供更加丰富的对象方法。
FastDateFormat 提供线程安全的针对Date对象的格式化和日期字符串解析支持。此对象在实际使用中并不需要感知,相关操作已经封装在DateUtil和DateTime的相关方法中。
DateBetween 计算两个时间间隔的类,除了通过构造新对象使用外,相关操作也已封装在DateUtil和DateTime的相关方法中。
TimeInterval 一个简单的计时器类,常用于计算某段代码的执行时间,提供包括毫秒、秒、分、时、天、周等各种单位的花费时长计算,对象的静态构造已封装在DateUtil中。
DatePattern 提供常用的日期格式化模式,包括String类型和FastDateFormat两种类型。
ChineseDate 农历日期,提供了生肖、天干地支、传统节日等方法。
类型转换工具
Convert类
Convert类可以说是一个工具方法类,里面封装了针对Java常见类型的转换,用于简化类型转换。Convert类中大部分方法为toXXX,参数为Object,可以实现将任意可能的类型转换为指定类型。同时支持第二个参数defaultValue用于在转换失败时返回一个默认值。
//转换为字符串
int a = 1;
//aStr为"1"
String aStr = Convert.toStr(a);
//转换为指定类型数组
String[] b = { "1", "2", "3", "4" };
//结果为Integer数组
Integer[] intArray = Convert.toIntArray(b);
//转换为日期对象
String a = "2017-05-06";
Date value = Convert.toDate(a);
//转换为集合
Object[] a = {"a", "你", "好", "", 1};
List<?> list = Convert.toList(a);
//半角转全角:
String a = "123456789";
//结果为:"123456789"
String sbc = Convert.toSBC(a);
//全角转半角
String a = "123456789";
//结果为"123456789"
String dbc = Convert.toDBC(a);
//转为16进制(Hex)字符串
String a = "我是一个小小的可爱的字符串";
String hex = Convert.toHex(a, CharsetUtil.CHARSET_UTF_8);
//将16进制(Hex)字符串转为普通字符串
String raw = Convert.hexToStr(hex, CharsetUtil.CHARSET_UTF_8);
//Unicode和字符串转换
String unicode = Convert.strToUnicode(a);
//结果为:"我是一个小小的可爱的字符串"
String raw = Convert.unicodeToStr(unicode);
//编码转换
String raw = Convert.convertCharset(result, CharsetUtil.ISO_8859_1, "UTF-8");
//时间单位转换
Convert.convertTime
//金额大小写转换
double a = 67556.32;
//结果为:"陆万柒仟伍佰伍拾陆元叁角贰分"
String digitUppercase = Convert.digitToChinese(a);
//数字转换
String format = Convert.numberToWord(100.23);
String f1 = Convert.numberToChinese(10889.72356, false);
//原始类和包装类转换
//去包装
Class<?> wrapClass = Integer.class;
//结果为:int.class
Class<?> unWraped = Convert.unWrap(wrapClass);
工具类
NumberUtil:数字处理工具类,可用于各种类型数字的加减乘除操作及判断类型
MapUtil:Map操作工具类,可用于创建Map对象及判断Map是否为空。
SecureUtil:加密解密工具类,可用于MD5加密。
CaptchaUtil: 验证码工具类,可用于生成图形验证码。
…