首页 > 编程语言 >Java工具库——Hutool的常用方法

Java工具库——Hutool的常用方法

时间:2024-07-20 22:08:11浏览次数:10  
标签:常用 Java cn java 代码 hutool Hutool import String

Hutool-All(或简称Hutool)是一个功能强大的Java编程工具库,旨在简化Java应用程序的开发。 它提供了大量的工具类和方法,涵盖了各种常见任务,包括字符串处理、日期时间操作、文件操作、网络通信、加密解密、数据转换、图像处理、JSON操作、Excel处理、邮件发送等等。 以下是Hutool-All的一些主要功能和模块的详细介绍

字符串工具(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(运行时信息获取)等。

  字符串判空和非空检查 

java 代码解读 复制代码
import cn.hutool.core.util.StrUtil;

String str = "Hello, World!";
boolean isEmpty = StrUtil.isEmpty(str); // 检查字符串是否为空
boolean isNotEmpty = StrUtil.isNotEmpty(str); // 检查字符串是否非空
  1. 字符串拼接 
java 代码解读 复制代码
String str1 = "Hello";
String str2 = "World";
String result = StrUtil.format("{} {}!", str1, str2); // 使用{}占位符拼接字符串
  1. 日期格式化
  java 代码解读 复制代码
import cn.hutool.core.date.DateUtil;

Date date = new Date();
String formattedDate = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss"); // 格式化日期
  1. 日期计算
  java 代码解读 复制代码
import cn.hutool.core.date.DateUtil;

Date now = new Date();
Date nextDay = DateUtil.offsetDay(now, 1); // 计算下一天的日期
  1. 文件复制
  java 代码解读 复制代码
import cn.hutool.core.io.FileUtil;

FileUtil.copy("source.txt", "destination.txt", true); // 复制文件,第三个参数表示是否覆盖
  1. MD5加密
  java 代码解读 复制代码
import cn.hutool.crypto.SecureUtil;

String input = "password123";
String md5Hash = SecureUtil.md5(input); // 计算MD5哈希值
  1. HTTP请求发送
  java 代码解读 复制代码
import cn.hutool.http.HttpUtil;

String response = HttpUtil.get("https://www.example.com"); // 发送GET请求
  1. JSON转换
  java 代码解读 复制代码
import cn.hutool.json.JSONUtil;

String jsonString = "{\"name\":\"John\",\"age\":30}";
JSONObject jsonObject = JSONUtil.parseObj(jsonString); // 将JSON字符串转换为JSON对象
  1. 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(); // 读取数据
  1. 图像缩放
  java 代码解读 复制代码
import cn.hutool.core.img.ImgUtil;

ImgUtil.scale(new File("input.jpg"), new File("output.jpg"), 0.5f); // 缩放图像大小
  1. 发送邮件
  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("[email protected]");
account.setPass("yourpassword");

MailUtil.send(account, "[email protected]", "Subject", "Message Body", false);
  1. 解析Cron表达式
  java 代码解读 复制代码
import cn.hutool.cron.CronUtil;

String cron = "0 0/1 * * * ?";
CronUtil.schedule("testJob", cron, () -> System.out.println("执行任务")); // 解析Cron表达式并执行任务
CronUtil.start();
  1. 文件读取
  java 代码解读 复制代码
import cn.hutool.core.io.FileUtil;

String content = FileUtil.readUtf8String("example.txt"); // 读取文件内容
  1. SHA-256加密
  java 代码解读 复制代码
import cn.hutool.crypto.digest.DigestUtil;

String input = "password123";
String sha256Hash = DigestUtil.sha256Hex(input); // 计算SHA-256哈希值
  1. HTTP POST请求
  java 代码解读 复制代码
import cn.hutool.http.HttpUtil;

String postData = "data=example";
String response = HttpUtil.post("https://www.example.com", postData); // 发送POST请求
  1. 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解码
  1. 判断文件是否存在
  java 代码解读 复制代码
import cn.hutool.core.io.FileUtil;

boolean fileExists = FileUtil.exist("example.txt"); // 判断文件是否存在
  1. 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解密
  1. 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
  1. 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文档
  1. 文件写入
  java 代码解读 复制代码
import cn.hutool.core.io.FileUtil;

String content = "This is a test.";
FileUtil.writeUtf8String(content, "example.txt"); // 写入文件内容
  1. 身份证号码验证
  java 代码解读 复制代码
import cn.hutool.core.util.IdcardUtil;

String idCard = "330682200001010101";
boolean valid = IdcardUtil.isValidCard(idCard); // 验证身份证号码是否有效
  1. 生成UUID
  java 代码解读 复制代码
import cn.hutool.core.util.IdUtil;

String uuid = IdUtil.simpleUUID(); // 生成简单UUID
  1. HTTP下载文件
  java 代码解读 复制代码
import cn.hutool.http.HttpUtil;

HttpUtil.downloadFile("https://www.example.com/file.zip", "downloaded.zip"); // 下载文件
  1. 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
  1. Enum转换工具
  java 代码解读 复制代码
import cn.hutool.core.util.EnumUtil;

EnumUtil.fromString(WeekEnum.class, "SUND

AY"); // 通过名称获取Enum常量
  1. IP地址验证
  java 代码解读 复制代码
import cn.hutool.core.util.NetUtil;

boolean validIp = NetUtil.isUsableLocalPort(80); // 检查端口是否可用
  1. 读取系统属性
  java 代码解读 复制代码
import cn.hutool.system.SystemUtil;

String osName = SystemUtil.get("os.name"); // 读取系统属性
  1. 正则表达式匹配
  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); // 使用正则表达式匹配并提取价格
  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解码
  1. 随机数生成
  java 代码解读 复制代码
import cn.hutool.core.util.RandomUtil;

int randomInt = RandomUtil.randomInt(1, 100); // 生成指定范围内的随机整数
  1. 获取类加载器
  java 代码解读 复制代码
import cn.hutool.core.util.ClassLoaderUtil;

ClassLoader classLoader = ClassLoaderUtil.getClassLoader(); // 获取当前线程的类加载器
  1. 获取文件后缀名
  java 代码解读 复制代码
import cn.hutool.core.io.FileUtil;

String fileName = "example.txt";
String extension = FileUtil.extName(fileName); // 获取文件的后缀名
  1. 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缓存中的值
  1. XML格式化
  java 代码解读 复制代码
import cn.hutool.core.util.XmlUtil;

String xml = "<user><name>John</name><age>30</age></user>";
String formattedXml = XmlUtil.format(xml); // 格式化XML文档
  1. 路径拼接
  java 代码解读 复制代码
import cn.hutool.core.io.FileUtil;

String path1 = "C:\\example\\dir";
String path2 = "file.txt";
String fullPath = FileUtil.join(path1, path2); // 拼接路径
  1. 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文件内容
  1. Base58编码
  java 代码解读 复制代码
import cn.hutool.core.util.StrUtil;

String input = "Base58 Encoding";
String encoded = StrUtil.base58Encode(input); // 进行Base58编码
String decoded = StrUtil.base58Decode(encoded); // 进行Base58解码
  1. URL参数解析
  java 代码解读 复制代码
import cn.hutool.http.HtmlUtil;

String query = "name=John&age=30";
Map<String, String> paramMap = HtmlUtil.decodeParamMap(query, "UTF-8"); // 解析URL参数
  1. 对象克隆
  java 代码解读 复制代码
import cn.hutool.core.util.ObjectUtil;

User original = new User("John", 30);
User clone = ObjectUtil.cloneByStream(original); // 使用流实现对象深克隆
  1. 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进行精确运算
  1. 随机字符串生成
  java 代码解读 复制代码
import cn.hutool.core.util.RandomUtil;

String randomStr = RandomUtil.randomString(8); // 生成指定长度的随机字符串
  1. 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链接
  1. 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
  1. 环境变量获取
  java 代码解读 复制代码
import cn.hutool.core.util.StrUtil;

String javaHome = StrUtil.format("Java Home: {}", SystemUtil.get("java.home")); // 获取系统环境变量
  1. 获取远程文件大小
  java 代码解读 复制代码
import cn.hutool.http.HttpUtil;

long fileSize = HttpUtil.downloadFile("https://www.example.com/largefile.zip", FileUtil.file("temp.zip")).length(); // 获取远程文件大小
  1. 线程休眠
  java 代码解读 复制代码
import cn.hutool.core.thread.ThreadUtil;

ThreadUtil.sleep(2000); // 休眠2秒
  1. 对象比较
  java 代码解读 复制代码
import cn.hutool.core.util.ObjectUtil;

boolean isEqual = ObjectUtil.equal(obj1, obj2); // 比较两个对象是否相等
  1. ZIP文件解压
  java 代码解读 复制代码
import cn.hutool.core.util.ZipUtil;

ZipUtil.unzip("example.zip", "destinationDir"); // 解压ZIP文件到指定目录
  1. 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开发任务。


作者:IT小辉同学
链接:https://juejin.cn/post/7294098092215468068
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。  

标签:常用,Java,cn,java,代码,hutool,Hutool,import,String
From: https://www.cnblogs.com/ZzwWan/p/18313880

相关文章

  • Java学习日历(static,工具类,继承)
    staticstatic表示静态,是Java中的一个修饰符,可以修饰成员方法,成员变量。特点:被该类所有对象共享不属于对象,属于类随着类的加载而加载,优先于对象存在调用方式:类名调用(推荐)对象名调用工具类帮助我们做一些事情的,但是不描述任何事物的类类名见名知意私有化构造方法......
  • JAVA学习篇(1)初学JAVA
    一.了解JAVAJava是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌......
  • Java反射
    java是面向对象的编程语言,对象,是一种具体的概念类:类是对具有相同特征或属性,具有相同行为能力的一类事物的描述或称呼对象:对象是这一类事物带有属性值,具有具体行为的个体或实例面向对象编程的语言packagetest;//定义一个类publicclassPhone{//添加一些属性......
  • Java入门知识
    Java特性和优势简单性面向对象可移植性高性能分布式动态性多线程安全性健壮性Java三大版本JavaSE:标准版(桌面程序,控制开发....)JavaME:嵌入式开发(手机,小家电....)JavaEE:E企业级开发(web端,服务器开发...)JDK、JRE、JVMJDK:JavaDevelopmentKitJRE:JavaRuntimeE......
  • java学习3
    这周的话想直接通过一个项目去进行学习,但是效果没有想象中的那么大好,我在网上抄了一个还算简单的图书管理系统,能连接数据库,将数据导入数据库。不像之前输入的数据结束程序就没了。但是只能增,没有删,改,查抄这个系统的时候出现了很多我不认识的技术栈,这时候我意识到一个完整项目是......
  • 暑假学习Java第三周
    通过本周的学习我认识到了自己有很多的不足与优点,优点是我能够把问题细化逐步分析,缺点是我的意志力不够坚定。我还了解了Java的三大特性包括:面向对象:Java是一种面向对象的编程语言,它允许程序员定义一系列关于对象和类的概念,并将这些概念作为编程的基本单位。在实际内容中,面向对象......
  • 推荐Java 杠把子技能库【Advanced Java】
    "AdvancedJava"通常是指Java编程语言及其相关技术在高级或专业层面的应用。它涵盖了Java标准版(JavaSE)、Java企业版(JavaEE,现在称为JakartaEE)和Java平台微服务版(JavaME)中的高级概念和技术。在软件开发领域,“AdvancedJava”可以指代一系列主题,包括但不限于:多线程和并发:处理线......
  • java报告第三周总结
    本周的学习内容为整个第四章的内容,学习中感觉知识点既多又杂,故在总结时尽量选用重要的或高度概括的知识点。面向对象语言特点:封装性、继承、多态类:类是java程序的基本要素,一个java程序就是由若干个类所构成,类是java语言中最重要的数据类型,类声明的变量被称为对象变量类、对象、......
  • 学Java的第三周(循环)
    在Java中,循环是指重复的操作或需要重复执行的代码。任何循环都需要有循环开始或结束的条件,如果循环无休止地进行,则称之为死循环。一个完整的循环结构必须满足以下特征:(1)循环有开始或结束的条件。(2)需要重复执行的操作或代码,称为循环操作或循环体。Java中while循环是-种非......
  • java3
    我学习了java的方法,在c++中相当于函数Java方法是面向对象编程中最核心的概念之一,它允许我们在程序中封装一部分代码,以便在需要时重复使用。方法的声明语法:访问修饰符返回类型方法名(参数列表){//方法体}访问修饰符:public:公有的,任何地方都能访问。protected:受保护的,同......