简介:官网|文档
一个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 | 扩展模块,对第三方封装(模板引擎、邮件、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)封装实现 |
导入依赖
<dependency>
<groupId>cn.hutoolgroupId>
<artifactId>hutool-allartifactId>
<version>5.5.8version>
dependency>
###1. 判断邮箱
判断给定字符串是否符合电子邮箱格式
boolean isEmail = Validator.isEmail("[email protected]");
null
boolean isNull =Validator.isNotEmpty(new String());
ObjectUtil.isNotEmpty(null); // 对象不为空返回 true
ObjectUtil.isEmpty(); //对象为null返回true
String dateStr = "2017-05-06";
Date date = Convert.toDate(dateStr);
String[] strArr = {"a", "b", "c", "d"};
List<String> strList = Convert.toList(String.class, strArr);
String template = "这只是个占位符:{}";
String str2 = StrUtil.format(template, "1");
//这只是个占位符:1
String n3 = "1.234";
NumberUtil.isNumber(n3);//判断是否为数字
NumberUtil.isInteger(n3);//判断是否为整数
NumberUtil.isDouble(n3);//判断是否为浮点数
PmsBrand brand = new PmsBrand();
brand.setId(1L);
brand.setName("华为");
brand.setShowStatus(0);
Map<String, Object> map = BeanUtil.beanToMap(brand);
PmsBrand mapBrand = BeanUtil.mapToBean(map, PmsBrand.class, false); //反过来
List<String> list=new ArrayList<>();
CollectionUtils.isNotEmpty(list);
可以自动识别字符串样式将字符串转换成为date类型
String dateStr = "2017-03-01";
date = DateUtil.parse(dateStr);
date = DateUtil.date(System.currentTimeMillis());
String format = DateUtil.format(date, "yyyy-MM-dd");
// 获取年份
int year = DateUtil.year(date);
//获得月份,从0开始计数 +1获取当前月份
int month = DateUtil.month(date);
也可以用于计算两年相隔多少年(两个时间段间隔多少年)
DateUtil.age(date,new Date())
Date newDate = DateUtil.offset(date, DateField.DAY_OF_MONTH, 100);
long betweenDay = DateUtil.between(date, newDate, DateUnit.DAY);
BeanUtil.toBean(new User(), UserVo.class))
// 将User实体类列表转变为 UserVo实体类列表
List<User> users= new ArrayList<>();
users.stream().map(user-> BeanUtil.toBean(user, UserVo.class)).collect(Collectors.toList());
double a = 123456.01;
System.out.println(Convert.digitToChinese(a));//壹拾贰万叁仟肆佰伍拾陆元零壹分
StrUtil.isEmpty(str);
StrUtil.isNotEmpty(str);
String str = "123456";
String md5Str = SecureUtil.md5(str);
在Hutool中,生成一个UUID字符串方法如下:
//生成的UUID是带-的字符串,类似于:a5c8a5e8-df2b-4706-bea4-08d0939410e3
String uuid =IdUtil.randomUUID();
//生成的是不带-的字符串,类似于:b17f24ff026d40949c85a24f4f375d42
String simpleUUID =IdUtil.simpleUUID();