服务好的企业网站怎么建设,用什么做视频网站比较好的,移动开发者,网站如何做微信推广这里写目录标题 一、简介二、包含组件三、常用功能演示2、时间工具DateUtil3、数字类工具NumberUtil4、身份认证工具IdcardUtil5、信息脱敏工具DesensitizedUtil6、字段校验工具Validator7、集合工具类CollStreamUtil 一、简介
Hutool是一个小而全的Java工具类库#xff0c;通… 这里写目录标题 一、简介二、包含组件三、常用功能演示2、时间工具DateUtil3、数字类工具NumberUtil4、身份认证工具IdcardUtil5、信息脱敏工具DesensitizedUtil6、字段校验工具Validator7、集合工具类CollStreamUtil 一、简介
Hutool是一个小而全的Java工具类库通过静态方法封装降低相关API的学习成本提高工作效率使Java拥有函数式语言般的优雅让Java语言也可以“甜甜的”。
Hutool的目标是使用一个工具方法代替一段复杂代码从而最大限度的避免“复制粘贴”代码的问题彻底改变我们写代码的方式。
以计算MD5为例 【以前】打开搜索引擎 - 搜“Java MD5加密” - 打开某篇博客- 复制粘贴 - 改改好用 【现在】引入Hutool - SecureUtil.md5()
Hutool的存在就是为了减少代码搜索成本避免网络上参差不齐的代码出现导致的bug。
二、包含组件
一个Java基础工具类对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装组成各种Util工具类同时提供以下组件 可以通过引入hutool-all方式引入所有模块,但还是不建议引入所有模块因为绝大部分功能项目可能都用不上建议只引入你需要的模块。
dependencygroupIdcn.hutool/groupIdartifactIdhutool-all/artifactIdversion5.8.16/version
/dependency另外个人觉得Hutool虽然工具很全但是有些事情还是交给专业的框架来做比如http请求就建议用okhttp或者httpclient,导入导出用easyexcel。
下面介绍一些常用的工具类
三、常用功能演示
Hutool 提供的功能实在太多这里只列举一些我个人觉得比较实用的功能供大家学习参考。
####1、类型转换工具Convert类 只要你需要用到类型转换的,你都先别急着自己造轮子可以先来这里找找。 public static void main(String[] args) {//1、Object 转 数字Object s 123;Integer bInt Convert.toInt(s);//如果给定的值为空或者转换失败返回默认值Integer baInt Convert.toInt(123a, 0);//2、数字转字符串String aStr Convert.toStr(1);//3、转 BigDecimalBigDecimal sbDecimal Convert.toBigDecimal(123);//4、金额转为中文形式String chinese Convert.digitToChinese(12);}还有很多很多只要你想到的这里基本上都有。
2、时间工具DateUtil public static void main(String[] args) {//1、当前时间Date date DateUtil.date();Date date2 DateUtil.date(System.currentTimeMillis());//2、当前时间字符串格式yyyy-MM-dd HH:mm:ssString now DateUtil.now();//当前日期字符串格式yyyy-MM-ddString today DateUtil.today();//3、获得月份从0开始计数int month DateUtil.month(new Date());//4、格式化后的字符串 默认yyyy-MM-dd HH:mm:ssString dateTime DateUtil.formatLocalDateTime(LocalDateTime.now());//格式化后的字符串 指定格式类型。所以类型在DatePattern工具类也可以找 不用在手写String format DateUtil.format(new Date(), DatePattern.CHINESE_DATE_PATTERN);//5、获取某月的开始时间DateTime dateTime1 DateUtil.beginOfMonth(new Date());//获取昨天时间DateTime yesterday DateUtil.yesterday();//6、计时常用于记录某段代码的执行时间单位毫秒long spendMs DateUtil.spendMs(111111111L);}
3、数字类工具NumberUtil
这个数字工具在实际开发中还是蛮有用的,一般我们进行数字加减的时候,很容易因为数据为null而报空指针异常。
这个工具类很好的帮我们避免这类问题的发生。
如下示例: public static void main(String[] args) {//1、数字相加 如果为空默认加0BigDecimal decimal BigDecimal.valueOf(10);//返回10BigDecimal add NumberUtil.add(decimal, null);}看下这个工具类的常用方法 //1、相加,9 null 9BigDecimal add(BigDecimal... values);BigDecimal add(String... values);//2、相减BigDecimal sub(BigDecimal... values);BigDecimal sub(String... values);//3、相乘BigDecimal mul(BigDecimal... values);BigDecimal mul(String... values);//4、相除,当发生除不尽的情况时,由scale指定精确度,后面的四舍五入BigDecimal div(Number v1, Number v2, int scale);BigDecimal div(String v1, String v2, int scale);//5、保留固定位数小数BigDecimal round(BigDecimal number, int scale);String roundStr(String numberStr, int scale);//6、格式化百分比: 0.23 - 23%String formatPercent(double number, int scale);//7、字符串是否为数字boolean isNumber(CharSequence str);//8、判断String是否是整数boolean isInteger(String s);//9、生成不重复随机数 根据给定的最小数字和最大数字以及随机数的个数int[] generateRandomNumber(int begin, int end, int size);//10、比较大小参数1 参数2 返回trueboolean isGreater(BigDecimal bigNum1, BigDecimal bigNum2);//11、取最大值BigDecimal max(BigDecimal... numberArray);//12、字符串转数字BigDecimal toBigDecimal(String numberStr);//13、空转0BigDecimal null2Zero(BigDecimal decimal);4、身份认证工具IdcardUtil
public static void main(String[] args) {String ID_18 119127189008245110;//是否有效boolean valid IdcardUtil.isValidCard(ID_18);//年龄int age IdcardUtil.getAgeByIdCard(ID_18);//生日String birth IdcardUtil.getBirthByIdCard(ID_18);//省份String province IdcardUtil.getProvinceByIdCard(ID_18);}5、信息脱敏工具DesensitizedUtil
public static void main(String[] args) {//【中文姓名】只显示第一个汉字其他隐藏为2个星号比如李**DesensitizedUtil.chineseName(张三);//【身份证号】前1位 和后2位DesensitizedUtil.idCardNum(33012345,1,2);//【手机号码】前三位后4位其他隐藏比如135****2210DesensitizedUtil.mobilePhone(13712345678);//【地址】只显示到地区不显示详细地址比如北京市海淀区****DesensitizedUtil.address(北京市海淀区被顺街道,4);//还有 邮箱、车牌、邮箱、银行卡、密码......
}6、字段校验工具Validator
public static void main(String[] args) {//1、判断字符串是否全部为字母组成包括大写和小写字母和汉字Validator.isLetter(小小宝贝);//2、验证该字符串是否是数字Validator.isNumber(123);//3、验证是否为可用邮箱地址Validator.isEmail(123456mall.com);//4、验证是否为手机号码中国Validator.isMobile(15612345678);//5、验证是否为身份证号码支持18位、15位和港澳台的10位Validator.isCitizenId(330127210006111234);//6、验证是否为中国车牌号Validator.isPlateNumber(小A.88888);//7、验证是否都为汉字Validator.isChinese(小A);//8、检查给定的数字是否在指定范围内Validator.isBetween(3,2,1);}7、集合工具类CollStreamUtil
用java8的Stream流能够非常简化我们的代码这个工具类相当于对java8的Stream的写法进一步简写。
public static void main(String[] args) {ListStudent list new ArrayList();list.add(new Student(1, 1, 1, 张三));list.add(new Student(1, 1, 2, 李四));list.add(new Student(1, 1, 3, 王五));//1、学生id - 学生对象MapLong, Student map CollStreamUtil.toIdentityMap(list, Student::getStudentId);//2、学生id - 学生名称MapLong, String map1 CollStreamUtil.toMap(list, Student::getStudentId, Student::getName);//3、学生id - 学生集合MapLong, ListStudent map2 CollStreamUtil.groupByKey(list, Student::getClassId);//4、获取用户名集合ListString list1 CollStreamUtil.toList(null, Student::getName);}当然上面只是展示了一小部分工具,具体的可以看官方文档写的清清楚楚明明白白哇
官方文档: https://www.hutool.cn/docs/#/
到此这篇关于超好用的Java工具类库Hutool用法详解的文章就介绍到这了,更多相关Java Hutool内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家