maven引入

<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>4.6.3</version>
</dependency>

hutool-all介绍

一个 Java 基础工具类,对文件、流、加密解密、转码、正则、线程、XML 等 JDK 方法进行封装,组成各种 Util 工具类。

它很强大,封装了很多组件,所以有什么工具类在实现之前,不妨去看看他的官网查一查:hutool-all官网

包含组件:

  • 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)封装实现

常用组件

import cn.hutool.core.annotation.AnnotationUtil;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import org.springframework.web.bind.annotation.RequestMapping;import java.lang.annotation.Annotation;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;/*** @author fei.chen* @description: HutoolUtil: Hutool中的工具类很多,可以参考官网:https://www.hutool.cn/* @date 2023/5/11下午 4:50*/
public class HutoolUtil {static class HutDateUtil {public static void dateTest() {//Date、long、Calendar之间的相互转换//当前时间Date date = DateUtil.date();//Calendar转Datedate = DateUtil.date(Calendar.getInstance());//时间戳转Datedate = DateUtil.date(System.currentTimeMillis());//自动识别格式转换String dateStr = "2017-03-01 12:22:22";date = DateUtil.parse(dateStr);//自定义格式化转换date = DateUtil.parse(dateStr, "yyyy-MM-dd HH:mm:ss");//格式化输出日期String format = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss");//获得年的部分int year = DateUtil.year(date);//获得月份,从0开始计数int month = DateUtil.month(date);//获取某天的开始、结束时间Date beginOfDay = DateUtil.beginOfDay(date);Date endOfDay = DateUtil.endOfDay(date);//计算偏移后的日期时间Date newDate = DateUtil.offset(date, DateField.DAY_OF_MONTH, 2);//计算日期时间之间的偏移量long betweenDay = DateUtil.between(date, newDate, DateUnit.DAY);}}static class HutStrUtil {public static void strTest() {//判断是否为空字符串String str = "test";StrUtil.isEmpty(str);StrUtil.isNotEmpty(str);//去除字符串的前后缀StrUtil.removeSuffix("a.jpg", ".jpg");StrUtil.removePrefix("a.jpg", "a.");//格式化字符串String template = "这只是个占位符:{}";String str2 = StrUtil.format(template, "我是占位符");System.out.println(str2);}}static class HutNumberUtil{public static void numberTest() {double n1 = 1.234;double n2 = 1.234;double result;//对float、double、BigDecimal做加减乘除操作result = NumberUtil.add(n1, n2);result = NumberUtil.sub(n1, n2);result = NumberUtil.mul(n1, n2);result = NumberUtil.div(n1, n2);//保留两位小数BigDecimal roundNum = NumberUtil.round(n1, 2);String n3 = "1.234";//判断是否为数字、整数、浮点数NumberUtil.isNumber(n3);NumberUtil.isInteger(n3);NumberUtil.isDouble(n3);//BeanUtil// JavaBean的工具类,可用于Map与JavaBean对象的互相转换以及对象属性的拷贝。TestClass testClass = new TestClass();testClass.setId(1L);testClass.setName("大大");testClass.setShowStatus(0);//Bean转MapMap<String, Object> map = BeanUtil.beanToMap(testClass);String template = "beanUtil bean to map:{}";System.out.println(StrUtil.format(template, map));//Map转BeanTestClass mapTestClass = BeanUtil.mapToBean(map, TestClass.class, false);System.out.println(StrUtil.format("beanUtil map to bean:{}", mapTestClass));//Bean属性拷贝TestClass copyTestClass = new TestClass();BeanUtil.copyProperties(testClass, copyTestClass);System.out.println(StrUtil.format("beanUtil copy properties:{}", copyTestClass));}}static class HutMapUtil{public static void mapTest() {//将多个键值对加入到Map中Map<Object, Object> map = MapUtil.of(new String[][]{{"key1", "value1"},{"key2", "value2"},{"key3", "value3"}});//判断Map是否为空MapUtil.isEmpty(map);MapUtil.isNotEmpty(map);
//            AnnotationUtil
//            注解工具类,可用于获取注解与注解中指定的值。//获取指定类、方法、字段、构造器上的注解列表Annotation[] annotationList = AnnotationUtil.getAnnotations(HutoolController.class, false);System.out.println(StrUtil.format("annotationUtil annotations:{}", annotationList));//获取指定类型注解Api api = AnnotationUtil.getAnnotation(HutoolController.class, Api.class);System.out.println(StrUtil.format("annotationUtil api value:{}", api.description()));//获取指定类型注解的值Object annotationValue = AnnotationUtil.getAnnotationValue(HutoolController.class, RequestMapping.class);}}/*** 加密解密工具类*/static class HutSecureUtil{public static void md5Test() {//MD5加密String str = "123456";String md5Str = SecureUtil.md5(str);}public static void sh1Test() {//sha1加密String str = "123456";String sha1Str = SecureUtil.sha1(str);}}
}

【Java工具类】HutoolUtil相关推荐

  1. 干货:排名前 16 的 Java 工具类!

    2019独角兽企业重金招聘Python工程师标准>>> 干货:排名前 16 的 Java 工具类!   在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最 ...

  2. 排名前 16 的 Java 工具类

    转载来自微信公众号:Java 技术栈.如有侵权,请联系作者删除!! 在 Java 中,工具类定义了一组公共方法,这篇文章将介绍 Java 中使用最频繁及最通用的 Java 工具类.以下工具类.方法按使 ...

  3. beanutils工具类_16 个超级实用的 Java 工具类!

    在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码. 一. ...

  4. java轻量级并行工具类_16 个超级实用的 Java 工具类

    原标题:16 个超级实用的 Java 工具类 源 /juejin 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名, ...

  5. Java工具类——UUIDUtils

    借用一下百度百科的解释,来看一下UUID是什么. UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Ope ...

  6. java 文本工具类_干货:排名前16的Java工具类

    原标题:干货:排名前16的Java工具类 作者丨Java技术栈 https://www.jianshu.com/p/9e937d178203 在Java中,工具类定义了一组公共方法,这篇文章将介绍Ja ...

  7. 干货:排名前16的Java工具类

    image 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源 ...

  8. Java工具类——通过配置XML验证Map

    Java工具类--通过配置XML验证Map 背景 在JavaWeb项目中,接收前端过来的参数时通常是使用我们的实体类进行接收的.但是呢,我们不能去决定已经搭建好的框架是怎么样的,在我接触的框架中有一种 ...

  9. 排名前16的Java工具类

    原文:https://www.jianshu.com/p/9e937d178203 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法 ...

  10. java字符串替换 数组,Java工具类-拆分字符串组装数组,替换字符

    Java工具类--拆分字符串组装数组,替换字符 >>>>>>>>>>>>>>>>>>> ...

最新文章

  1. R语言因子分析FA(factor analysis)步骤实战
  2. 线程安全的ConcurrentQueueT队列
  3. php 单元测试分享,今日分享:代码整洁之道- 单元测试
  4. 跟公务员稍稍的接触了下
  5. 力扣:7整数反转(python)
  6. ssh: connect to host github.com port 22: Connection timed out
  7. 【51nod - 1108】距离之和最小 V2(曼哈顿距离,中位数性质)
  8. 果皇的矩阵[matrix]
  9. oracle imdmp方式导入dmp文件
  10. java计算机毕业设计随心淘网管理系统源代码+数据库+系统+lw文档
  11. 城市道路智慧照明服务认证的流程及作用
  12. 计算机显卡模式,电脑bios设置显卡图解
  13. mysql8并行查询_并行查询(Parallel Query)
  14. 现在的python版本_为什么有这么多 Python版本
  15. AMD显卡性能测试软件,谁更适合Win7?AMD与NVIDIA显卡性能对比
  16. 用户画像第一章(企业级360°全方位用户画像_环境搭建)
  17. 【CUDA开发】CUDA的安装、Nvidia显卡型号及测试
  18. 数据逻辑结构 的 二元组表示法
  19. excel公式编写简化,Python生成公式
  20. 招人厌的 10 种男人

热门文章

  1. 转:通过他人完成任务的艺术 - 读《领导梯队》
  2. java 精简版jre_超级精简版的jre
  3. python 判断图片的类型
  4. 20X42 FCPX插件专业强大电影级多功能调色插件 Cinema Grade Pro v1.1.3
  5. 关于《M3U8解码工具》的使用
  6. 一文看懂推荐系统:召回07:双塔模型——正负样本的选择,召回的目的是区分感兴趣和不感兴趣的,精排是区分感兴趣和非常感兴趣的
  7. [济南考勤机专题]考勤机类型(四)人脸识别考勤机
  8. 华硕K40AB摄像头驱动的安装
  9. luch-request 在uniapp项目中的使用
  10. 初入了解MySQL储存引擎和B+Tree索引