Java工具库——Hutool的常用方法
字符串工具(StrUtil):
提供了各种字符串处理方法,如判空、截取、拼接、格式化、大小写转换、正则表达式匹配等。
日期时间工具(DateUtil):
支持日期时间的格式化、解析、计算、比较、时区转换、时间间隔计算等功能。
文件工具(FileUtil):
提供了文件和目录的操作,包括复制、移动、删除、文件大小计算、文件类型判断等。
加密解密工具(SecureUtil):
包括各种常见的加密算法和哈希函数,如MD5、SHA-1、SHA-256、DES、AES等。
网络工具(NetUtil):
提供了网络相关的工具方法,如获取本机IP地址、端口扫描、HTTP请求发送等。
数据转换工具(Convert):
支持各种数据类型之间的转换,包括字符串、数字、日期、集合等。
JSON工具(JSONUtil):
提供了JSON对象的转换、解析、格式化和操作,方便与JSON数据的交互。
Excel工具(ExcelUtil):
支持Excel文件的读取和写入,包括读取和写入Excel表格数据、样式设置等。
图像工具(ImageUtil):
提供了图像处理功能,包括缩放、裁剪、旋转、水印添加、格式转换等。
邮件工具(MailUtil):
用于发送电子邮件的工具,支持文本和HTML邮件的发送。
定时任务工具(CronUtil):
提供了Cron表达式的解析和计算,方便定时任务的管理和调度。
日志工具(Log):
提供了简化日志记录的方法,允许以不同级别输出日志信息。
其他工具(MiscUtil):
包含了一些其他杂项工具,如SystemUtil(系统信息获取)、RuntimeUtil(运行时信息获取)等。
字符串判空和非空检查
import cn.hutool.core.util.StrUtil;
String str = "Hello, World!";
boolean isEmpty = StrUtil.isEmpty(str); // 检查字符串是否为空
boolean isNotEmpty = StrUtil.isNotEmpty(str); // 检查字符串是否非空
- 字符串拼接
String str1 = "Hello";
String str2 = "World";
String result = StrUtil.format("{} {}!", str1, str2); // 使用{}占位符拼接字符串
- 日期格式化
java
import cn.hutool.core.date.DateUtil;
Date date = new Date();
String formattedDate = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss"); // 格式化日期
- 日期计算
java
import cn.hutool.core.date.DateUtil;
Date now = new Date();
Date nextDay = DateUtil.offsetDay(now, 1); // 计算下一天的日期
- 文件复制
java
import cn.hutool.core.io.FileUtil;
FileUtil.copy("source.txt", "destination.txt", true); // 复制文件,第三个参数表示是否覆盖
- MD5加密
java
import cn.hutool.crypto.SecureUtil;
String input = "password123";
String md5Hash = SecureUtil.md5(input); // 计算MD5哈希值
- HTTP请求发送
java
import cn.hutool.http.HttpUtil;
String response = HttpUtil.get("https://www.example.com"); // 发送GET请求
- JSON转换
java
import cn.hutool.json.JSONUtil;
String jsonString = "{\"name\":\"John\",\"age\":30}";
JSONObject jsonObject = JSONUtil.parseObj(jsonString); // 将JSON字符串转换为JSON对象
- Excel读取
java
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelReader;
ExcelReader reader = ExcelUtil.getReader("data.xlsx"); // 读取Excel文件
List<List<Object>> dataList = reader.read(); // 读取数据
- 图像缩放
java
import cn.hutool.core.img.ImgUtil;
ImgUtil.scale(new File("input.jpg"), new File("output.jpg"), 0.5f); // 缩放图像大小
- 发送邮件
java
import cn.hutool.extra.mail.MailUtil;
import cn.hutool.extra.mail.MailAccount;
MailAccount account = new MailAccount();
account.setHost("smtp.example.com");
account.setPort(25);
account.setAuth(true);
account.setUser("your@email.com");
account.setPass("yourpassword");
MailUtil.send(account, "recipient@example.com", "Subject", "Message Body", false);
- 解析Cron表达式
java
import cn.hutool.cron.CronUtil;
String cron = "0 0/1 * * * ?";
CronUtil.schedule("testJob", cron, () -> System.out.println("执行任务")); // 解析Cron表达式并执行任务
CronUtil.start();
- 文件读取
java
import cn.hutool.core.io.FileUtil;
String content = FileUtil.readUtf8String("example.txt"); // 读取文件内容
- SHA-256加密
java
import cn.hutool.crypto.digest.DigestUtil;
String input = "password123";
String sha256Hash = DigestUtil.sha256Hex(input); // 计算SHA-256哈希值
- HTTP POST请求
java
import cn.hutool.http.HttpUtil;
String postData = "data=example";
String response = HttpUtil.post("https://www.example.com", postData); // 发送POST请求
- URL编码和解码
java
import cn.hutool.core.util.URLUtil;
String url = "https://www.example.com?q=Hutool-All";
String encodedUrl = URLUtil.encode(url); // URL编码
String decodedUrl = URLUtil.decode(encodedUrl); // URL解码
- 判断文件是否存在
java
import cn.hutool.core.io.FileUtil;
boolean fileExists = FileUtil.exist("example.txt"); // 判断文件是否存在
- AES加密和解密
java
import cn.hutool.crypto.symmetric.SymmetricCrypto;
SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, "yourkey");
String content = "Sensitive data";
String encrypted = aes.encryptBase64(content); // AES加密
String decrypted = aes.decryptStr(encrypted); // AES解密
- URL构建
java
import cn.hutool.http.HtmlUtil;
String baseUrl = "https://www.example.com";
String query = "q=Hutool-All";
String completeUrl = HtmlUtil.encodeUrl(baseUrl, query); // 构建带查询参数的URL
- XML解析
java
import cn.hutool.core.util.XmlUtil;
String xml = "<user><name>John</name><age>30</age></user>";
Element root = XmlUtil.readXML(xml);
String name = XmlUtil.elementText(root, "name"); // 解析XML文档
- 文件写入
java
import cn.hutool.core.io.FileUtil;
String content = "This is a test.";
FileUtil.writeUtf8String(content, "example.txt"); // 写入文件内容
- 身份证号码验证
java
import cn.hutool.core.util.IdcardUtil;
String idCard = "330682200001010101";
boolean valid = IdcardUtil.isValidCard(idCard); // 验证身份证号码是否有效
- 生成UUID
java
import cn.hutool.core.util.IdUtil;
String uuid = IdUtil.simpleUUID(); // 生成简单UUID
- HTTP下载文件
java
import cn.hutool.http.HttpUtil;
HttpUtil.downloadFile("https://www.example.com/file.zip", "downloaded.zip"); // 下载文件
- Map转换为Bean
java
import cn.hutool.core.bean.BeanUtil;
Map<String, Object> map = new HashMap<>();
map.put("name", "John");
map.put("age", 30);
User user = BeanUtil.mapToBean(map, User.class, true); // 将Map转换为Java Bean
- Enum转换工具
java
import cn.hutool.core.util.EnumUtil;
EnumUtil.fromString(WeekEnum.class, "SUND
AY"); // 通过名称获取Enum常量
- IP地址验证
java
import cn.hutool.core.util.NetUtil;
boolean validIp = NetUtil.isUsableLocalPort(80); // 检查端口是否可用
- 读取系统属性
java
import cn.hutool.system.SystemUtil;
String osName = SystemUtil.get("os.name"); // 读取系统属性
- 正则表达式匹配
java
import cn.hutool.core.util.ReUtil;
String content = "The price is $100.99";
String regex = "The price is \\$(\\d+\\.\\d+)";
String price = ReUtil.get(regex, content, 1); // 使用正则表达式匹配并提取价格
- Base64编码
java
import cn.hutool.core.codec.Base64;
String source = "Base64 Encoding";
String encoded = Base64.encode(source); // 进行Base64编码
String decoded = Base64.decodeStr(encoded); // 进行Base64解码
- 随机数生成
java
import cn.hutool.core.util.RandomUtil;
int randomInt = RandomUtil.randomInt(1, 100); // 生成指定范围内的随机整数
- 获取类加载器
java
import cn.hutool.core.util.ClassLoaderUtil;
ClassLoader classLoader = ClassLoaderUtil.getClassLoader(); // 获取当前线程的类加载器
- 获取文件后缀名
java
import cn.hutool.core.io.FileUtil;
String fileName = "example.txt";
String extension = FileUtil.extName(fileName); // 获取文件的后缀名
- LRU缓存
java
import cn.hutool.cache.Cache;
import cn.hutool.cache.CacheUtil;
Cache<String, String> lruCache = CacheUtil.newLRUCache(100);
lruCache.put("key1", "value1");
String value = lruCache.get("key1"); // 获取LRU缓存中的值
- XML格式化
java
import cn.hutool.core.util.XmlUtil;
String xml = "<user><name>John</name><age>30</age></user>";
String formattedXml = XmlUtil.format(xml); // 格式化XML文档
- 路径拼接
java
import cn.hutool.core.io.FileUtil;
String path1 = "C:\\example\\dir";
String path2 = "file.txt";
String fullPath = FileUtil.join(path1, path2); // 拼接路径
- CSV读取
java
import cn.hutool.core.text.csv.CsvData;
import cn.hutool.core.text.csv.CsvReader;
CsvReader reader = new CsvReader("data.csv", CharsetUtil.CHARSET_UTF_8);
CsvData data = reader.read(); // 读取CSV文件内容
- Base58编码
java
import cn.hutool.core.util.StrUtil;
String input = "Base58 Encoding";
String encoded = StrUtil.base58Encode(input); // 进行Base58编码
String decoded = StrUtil.base58Decode(encoded); // 进行Base58解码
- URL参数解析
java
import cn.hutool.http.HtmlUtil;
String query = "name=John&age=30";
Map<String, String> paramMap = HtmlUtil.decodeParamMap(query, "UTF-8"); // 解析URL参数
- 对象克隆
java
import cn.hutool.core.util.ObjectUtil;
User original = new User("John", 30);
User clone = ObjectUtil.cloneByStream(original); // 使用流实现对象深克隆
- BigDecimal运算
java
import cn.hutool.core.util.NumberUtil;
BigDecimal num1 = new BigDecimal("10.5");
BigDecimal num2 = new BigDecimal("5.2");
BigDecimal result = NumberUtil.add(num1, num2); // 使用BigDecimal进行精确运算
- 随机字符串生成
java
import cn.hutool.core.util.RandomUtil;
String randomStr = RandomUtil.randomString(8); // 生成指定长度的随机字符串
- URL链接合并
java
import cn.hutool.core.util.URLUtil;
String base = "https://www.example.com";
String relative = "path/to/resource";
String fullUrl = URLUtil.complateUrl(base, relative); // 合并URL链接
- List分组
java
import cn.hutool.core.collection.CollUtil;
List<String> data = Arrays.asList("A", "B", "C", "D", "E");
List<List<String>> groups = CollUtil.subList(data, 2); // 将List分成指定大小的子List
- 环境变量获取
java
import cn.hutool.core.util.StrUtil;
String javaHome = StrUtil.format("Java Home: {}", SystemUtil.get("java.home")); // 获取系统环境变量
- 获取远程文件大小
java
import cn.hutool.http.HttpUtil;
long fileSize = HttpUtil.downloadFile("https://www.example.com/largefile.zip", FileUtil.file("temp.zip")).length(); // 获取远程文件大小
- 线程休眠
java
import cn.hutool.core.thread.ThreadUtil;
ThreadUtil.sleep(2000); // 休眠2秒
- 对象比较
java
import cn.hutool.core.util.ObjectUtil;
boolean isEqual = ObjectUtil.equal(obj1, obj2); // 比较两个对象是否相等
- ZIP文件解压
java
import cn.hutool.core.util.ZipUtil;
ZipUtil.unzip("example.zip", "destinationDir"); // 解压ZIP文件到指定目录
- Map键值互换
java
import cn.hutool.core.collection.CollUtil;
Map<String, Integer> originalMap = new HashMap<>();
Map<Integer, String> swappedMap = CollUtil.reverse(originalMap); // 交换Map的键和值
这些方法代表了Hutool-All库中的常见用例。请注意,Hutool-All库提供了更多方法和功能,可以根据需要选择合适的工具来简化Java开发任务。
链接:https://juejin.cn/post/7294098092215468068
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Java工具库——Hutool的常用方法的更多相关文章
- 干掉复杂的工具类,国产Java工具类库 Hutool 很香!
Hutool 大家已经比较熟悉了,这是一个超全的 Java 工具库,深受国内开发者的喜爱. 我之前其实是不太喜欢使用这种功能太多的工具类的,也比较担心稳定性和安全性,后面慢慢接受了就感觉其实也还好.而 ...
- Bean-Query 一个把对象转换为Map的Java工具库
刚开源了一个经过完整測试的Java工具类. 地址例如以下: https://github.com/Jimmy-Shi/bean-query 使用说明例如以下: Bean-query Click Her ...
- java工具库
Guava: commons:---工具库(尤其里面的排序库) joda-time:
- Java工具库:
1. 重试框架: https://docs.spring.io/spring-batch/trunk/reference/html/retry.html <dependency> < ...
- fastjson——json工具库
fastjson alibaba fastjson是阿里巴巴公司开源维护的一个处理json格式数据的java工具库. 功能特性: 数据绑定databind (json string <--> ...
- JAVA基础——Arrays工具类十大常用方法
Arrays工具类十大常用方法 原文链接:http://blog.csdn.net/renfufei/article/details/16829457 0. 声明数组 String[] aArray ...
- hutool JAVA 工具类
https://hutool.cn/docs/#/ 入门和安装 A set of tools that keep Java sweet. -- 主页:https://hutool.cn/ | http ...
- Hutool :一个小而全的 Java 工具类库
Hutool 简介 Hutool 是一个小而全的 Java 工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以"甜甜的 ...
- 细说Java主流日志工具库
概述 在项目开发中,为了跟踪代码的运行情况,常常要使用日志来记录信息. 在Java世界,有很多的日志工具库来实现日志功能,避免了我们重复造轮子. 我们先来逐一了解一下主流日志工具. java.util ...
- Java主流日志工具库
在项目开发中,为了跟踪代码的运行情况,常常要使用日志来记录信息.在Java世界,有很多的日志工具库来实现日志功能,避免了我们重复造轮子.我们先来逐一了解一下主流日志工具. 1.java.util.lo ...
随机推荐
- 基于 Kubernetes 的 CICD 基础设施即代码
在上一篇基于 Kubernetes 的基础设施即代码一文中,我概要地介绍了基于 Kubernetes 的 .NET Core 微服务和 CI/CD 动手实践工作坊使用的基础设施是如何使用代码描述的,以 ...
- 行列式求值,从 $n!$ 优化到 $n^3$
前置知识 \(\sum\) 为累加符号,\(\prod\) 为累乘符号. 上三角矩阵指只有对角线及其右上方有数值其余都是 \(0\) 的矩阵. 如果一个矩阵的对角线全部为 \(1\) 那么这个矩阵为单 ...
- mysql忘记密码找回的方法
mysql忘记密码找回的方法: 在找回之前需要对 --skip-networking 参数进行了解 --skip-grant-tables: 关闭mysql验证模块 同时还需要关闭远程连接(避免他人连 ...
- CTFshow-Crypto(1-5)
1密码学签到 自己倒序 在线网站倒序 文字倒序工具,在线文字倒序 (qqxiuzi.cn) python脚本 a = '}wohs.ftc{galf' print(a[::-1], end=" ...
- k8s——核心概念篇
服务的分类 有状态 代表应用 nginx apache 优点 对客户端透明,无依赖关系,可以高效实现扩容,迁移 缺点 不能存储数据,需要额外的数据服务支撑 无状态 代表应用 MYSQL Redis 优 ...
- INFINI Labs 产品更新 | Easysearch 1.8.2 发布优化 CCR 性能
INFINI Labs 产品又更新啦~,包括 Easysearch v1.8.0.Gateway.Console.Agent.Loadgen v1.25.0.本次各产品更新了很多亮点功能,如 Easy ...
- TiDB 多集群告警监控-中章-融合多集群 Grafana
author:longzhuquan 背景 随着公司XC改造步伐的前进,越来越多的业务选择 TiDB,由于各个业务之间需要物理隔离,避免不了的 TiDB 集群数量越来越多.虽然每套 TiDB 集群均有 ...
- TypeAdapter处理Gson解析,null值替换为"",null值替换为[]
前言 在与后端对接过程中,常常会出现因为后端不规范,导致某些String字段有时传null,有时传"".但我们在对接时并不知道哪些可能为空,他到底会传啥,总不能将Bean类中的所有 ...
- 汽车生产车间PMC组态画面应该怎么设计
通常我们所说的汽车制造四大工艺指的是:冲压.焊装.涂装.总装.一般来说,在汽车制造工厂,这四大工艺分别对应四大车间.本文结合一些实际应用案例,向大家展示一下 TopStack 在汽车制造业各工艺车间中 ...
- CentOS8 安装ansible
# 安装epel扩展源 yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y # ...