Hutool工具包的常用工具类的使用介绍

发布于:2024-12-21 ⋅ 阅读:(178) ⋅ 点赞:(0)

前言

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 对象转换为 Map
        Map<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;
        }

        @Override
        public 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));  // true
        System.out.println(MapUtil.isNotEmpty(map));  // false
        
        // 添加元素
        map.put("key", "value");
        
        System.out.println(MapUtil.isEmpty(map));  // false
        System.out.println(MapUtil.isNotEmpty(map));  // true
    }
}

2.创建一个空的 Map 或新建一个 HashMap

import cn.hutool.core.collection.MapUtil;

public class MapUtilExample {
    public static void main(String[] args) {
        // 创建一个空的 HashMap
        Map<String, String> emptyMap = MapUtil.newHashMap();
        System.out.println(emptyMap);  // 输出: {}
        
        // 创建一个带初始值的 HashMap
        Map<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");

        // 合并两个 Map
        Map<String, String> mergedMap = MapUtil.merge(map1, map2);
        System.out.println(mergedMap);  // 输出: {key1=value1, key2=value2}
    }
}

总结

上述是一些常用的工具类,Hutool是一个小而全的Java工具类库,上述只是列举了部分,涉及到其他的使用方法可以参考官方api文档进行查询。

官网地址:

Hutool🍬一个功能丰富且易用的Java工具库,涵盖了字符串、数字、集合、编码、日期、文件、IO、加密、数据库JDBC、JSON、HTTP客户端等功能。