前言
Hutool 是一个轻量级的 Java 工具类库,提供了非常丰富的工具方法,可以大大减少开发时的重复性工作。它的目标是让 Java 开发更简单、更高效。Hutool 提供了多种常用功能,以下是一些常用工具类的使用介绍:
1. StrUtil - 字符串工具类
StrUtil 提供了大量的字符串处理方法,如字符串的空值判断、去除空格、字符串拼接等。
import cn.hutool.core.util.StrUtil;public class StrUtilExample {public static void main(String[] args) {String str = " Hello Hutool ";// 去除两端空白String trimmed = StrUtil.trim(str);System.out.println(trimmed); // "Hello Hutool"// 判断字符串是否为空boolean isEmpty = StrUtil.isEmpty(str);System.out.println(isEmpty); // false// 判断字符串是否为空或只包含空格boolean isBlank = StrUtil.isBlank(str);System.out.println(isBlank); // false// 拼接字符串String joined = StrUtil.join("-", "a", "b", "c");System.out.println(joined); // "a-b-c"}
}
常用方法:
trim(String str)
:去掉字符串前后的空白字符。isEmpty(String str)
:判断字符串是否为空(不包括空白字符)。isBlank(String str)
:判断字符串是否为空或仅包含空白字符。join(String separator, Object... elements)
:将多个字符串用指定分隔符连接。
2. CollUtil - 集合工具类
CollUtil 提供了集合相关的常用操作,如集合是否为空、集合合并、集合去重等。
import cn.hutool.core.collection.CollUtil;
import java.util.List;public class CollUtilExample {public static void main(String[] args) {List<String> list1 = CollUtil.newArrayList("a", "b", "c");List<String> list2 = CollUtil.newArrayList("d", "e");// 合并集合List<String> combined = CollUtil.union(list1, list2);System.out.println(combined); // ["a", "b", "c", "d", "e"]// 去重集合List<String> listWithDuplicates = CollUtil.newArrayList("a", "b", "a", "c");List<String> uniqueList = CollUtil.removeDuplicate(listWithDuplicates);System.out.println(uniqueList); // ["a", "b", "c"]// 判断集合是否为空boolean isEmpty = CollUtil.isEmpty(list1);System.out.println(isEmpty); // false}
}
常用方法:
union(Collection<T> coll1, Collection<T> coll2)
:合并两个集合。removeDuplicate(List<T> list)
:去重列表中的重复元素。isEmpty(Collection<T> coll)
:判断集合是否为空。
3. DateUtil - 日期工具类
DateUtil 是处理日期和时间的一个非常强大的工具类,支持各种日期格式的转换、计算、比较等操作。
import cn.hutool.core.date.DateUtil;
import java.util.Date;public class DateUtilExample {public static void main(String[] args) {// 获取当前日期Date now = DateUtil.date();System.out.println(now); // 输出当前日期// 格式化日期String formattedDate = DateUtil.format(now, "yyyy-MM-dd HH:mm:ss");System.out.println(formattedDate); // 输出格式化后的日期// 解析日期字符串Date parsedDate = DateUtil.parse("2024-12-20 10:00:00", "yyyy-MM-dd HH:mm:ss");System.out.println(parsedDate); // 输出解析后的日期// 获取当前时间戳long timestamp = DateUtil.current();System.out.println(timestamp); // 输出当前时间戳}
}
常用方法:
date()
:获取当前日期。format(Date date, String pattern)
:格式化日期。parse(String dateStr, String pattern)
:解析日期字符串。current()
:获取当前时间戳。
4. FileUtil - 文件工具类
FileUtil 提供了大量的文件操作方法,包括读取文件、写入文件、文件夹操作等。
import cn.hutool.core.io.FileUtil;import java.io.File;public class FileUtilExample {public static void main(String[] args) {// 创建文件File file = FileUtil.touch("test.txt");System.out.println("文件创建成功:" + file.exists());// 写入内容FileUtil.writeUtf8String("Hello Hutool", file);// 读取文件内容String content = FileUtil.readUtf8String(file);System.out.println(content); // 输出:Hello Hutool// 删除文件FileUtil.del(file);System.out.println("文件已删除:" + !file.exists());}
}
常用方法:
touch(String path)
:创建一个文件,如果文件存在,则不做任何操作。writeUtf8String(String content, File file)
:以 UTF-8 编码向文件写入字符串。readUtf8String(File file)
:读取文件的 UTF-8 编码内容。del(File file)
:删除文件或目录。
5. BeanUtil - Bean 操作工具类
BeanUtil 提供了对 Java Bean 的操作方法,支持对象属性的复制、转化等。
import cn.hutool.core.bean.BeanUtil;import java.util.HashMap;
import java.util.Map;public class BeanUtilExample {public static void main(String[] args) {// 将 Map 转换为 Bean 对象Map<String, Object> map = new HashMap<>();map.put("name", "John");map.put("age", 25);Person person = BeanUtil.mapToBean(map, Person.class, false);System.out.println(person); // Person{name='John', age=25}// 将 Bean 对象转换为 MapMap<String, Object> convertedMap = BeanUtil.beanToMap(person);System.out.println(convertedMap); // {name=John, age=25}// 创建 User 对象User user = new User("Alice", 30);// 创建 UserDTO 对象UserDTO userDTO = new UserDTO();// 使用 BeanUtil 进行属性拷贝BeanUtil.copyProperties(user, userDTO);// 输出拷贝后的 UserDTO 对象System.out.println(userDTO); // 输出: UserDTO{name='Alice', age=30}}static class Person {private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;}@Overridepublic String toString() {return "Person{name='" + name + "', age=" + age + '}';}}
}
常用方法:
mapToBean(Map<String, Object> map, Class<T> beanClass, boolean ignoreError)
:将 Map 转换为 Bean 对象。beanToMap(Object bean)
:将 Bean 转换为 Map。- BeanUtil.copyProperties(brand, copyBrand):属性拷贝
6. RandomUtil - 随机数工具类
RandomUtil 提供了生成随机数、随机字符、随机字符串等的工具方法。
import cn.hutool.core.util.RandomUtil;public class RandomUtilExample {public static void main(String[] args) {// 生成随机整数int randomInt = RandomUtil.randomInt();System.out.println(randomInt);// 生成指定范围的随机整数int randomIntInRange = RandomUtil.randomInt(1, 100);System.out.println(randomIntInRange);// 生成随机字符串String randomStr = RandomUtil.randomString(10);System.out.println(randomStr);}
}
常用方法:
randomInt()
:生成一个随机整数。randomInt(int start, int end)
:生成指定范围内的随机整数。randomString(int length)
:生成指定长度的随机字符串。
7. MapUtil - Map操作工具类
1. 判断 Map 是否为空
import cn.hutool.core.collection.MapUtil;
import java.util.Map;
import java.util.HashMap;public class MapUtilExample {public static void main(String[] args) {Map<String, String> map = new HashMap<>();// 判断 Map 是否为空System.out.println(MapUtil.isEmpty(map)); // trueSystem.out.println(MapUtil.isNotEmpty(map)); // false// 添加元素map.put("key", "value");System.out.println(MapUtil.isEmpty(map)); // falseSystem.out.println(MapUtil.isNotEmpty(map)); // true}
}
2.创建一个空的 Map
或新建一个 HashMap
import cn.hutool.core.collection.MapUtil;public class MapUtilExample {public static void main(String[] args) {// 创建一个空的 HashMapMap<String, String> emptyMap = MapUtil.newHashMap();System.out.println(emptyMap); // 输出: {}// 创建一个带初始值的 HashMapMap<String, String> mapWithValues = MapUtil.newHashMap(3);mapWithValues.put("key1", "value1");mapWithValues.put("key2", "value2");System.out.println(mapWithValues); // 输出: {key1=value1, key2=value2}}
}
3. 获取 Map 中的值,支持默认值
import cn.hutool.core.collection.MapUtil;import java.util.Map;
import java.util.HashMap;public class MapUtilExample {public static void main(String[] args) {Map<String, String> map = new HashMap<>();map.put("key1", "value1");// 获取 Map 中的值,存在则返回,否则返回默认值String value = MapUtil.get(map, "key1", "defaultValue");System.out.println(value); // 输出: value1// 获取一个不存在的键,返回默认值String defaultValue = MapUtil.get(map, "key2", "defaultValue");System.out.println(defaultValue); // 输出: defaultValue}
}
4. 合并多个 Map
import cn.hutool.core.collection.MapUtil;
import java.util.Map;
import java.util.HashMap;public class MapUtilExample {public static void main(String[] args) {Map<String, String> map1 = new HashMap<>();map1.put("key1", "value1");Map<String, String> map2 = new HashMap<>();map2.put("key2", "value2");// 合并两个 MapMap<String, String> mergedMap = MapUtil.merge(map1, map2);System.out.println(mergedMap); // 输出: {key1=value1, key2=value2}}
}
总结
上述是一些常用的工具类,Hutool是一个小而全的Java工具类库,上述只是列举了部分,涉及到其他的使用方法可以参考官方api文档进行查询。
官网地址:
Hutool🍬一个功能丰富且易用的Java工具库,涵盖了字符串、数字、集合、编码、日期、文件、IO、加密、数据库JDBC、JSON、HTTP客户端等功能。