hutool工具集合的基本使用

package com.exa.hutool;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.unit.DataUnit;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import org.apache.catalina.User;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.ExecutorService;

class HutoolApplicationTests {

@Test
void contextLoads() {

}

/**
 * 测试Arraylist的基本使用
 * contains数组中是否存在某个值
 */
@Test
public void testContains(){
    String[] strings={"red","black","orange","white"};
    System.out.println(ArrayUtil.contains(strings, "grey"));
    System.out.println(ArrayUtil.contains(strings, "red"));
}

/**
 * CollUtil
 * containsAll() 一个集合是否包含另一个集合的全部元素
 */

@Test
public  void testContainsAll(){
    List<String> list1 = new ArrayList<>();
    list1.add("str");
    list1.add("a");
    list1.add("b");
    list1.add("c");
    List<Object> list2 = new ArrayList<>();
    list2.add("b");
    list2.add("c");
    boolean containsAll = CollUtil.containsAll(list1, list2);
    System.out.println(containsAll);
}

/**
 * isEmpty() 判断一个集合是不是为空
 */
@Test
public void testIsEmpty(){
    List<String> list1 = new ArrayList<>();
    list1.add("str");
    list1.add("a");
    list1.add("b");
    list1.add("c");
    List<String> list = new ArrayList<>();
    System.out.println(CollUtil.isEmpty(list));
    System.out.println(CollUtil.isEmpty(list1));
}

/**
 * beginOfYear() 获取一年最开始的时间
 */
@Test
public void testBeginOfYear(){
    //beginOfYear() 获取一年最开始的时间
    System.out.println(DateUtil.beginOfYear(new Date()));
    //beginOfMonth() 获取当前月第一天的时期
    System.out.println(DateUtil.beginOfMonth(new Date()));
    //beginOfDay 获取一天最开始的时间
    System.out.println(DateUtil.beginOfDay(DateUtil.date()));
    //betweenDay(Date beginDate, Date endDate, boolean isReset) 计算时间天数差
    Date d1=new Date(2018,10,22);
    Date d2=new Date(2017,10,22);
    System.out.println(DateUtil.betweenDay(d1, d2, true));
    //DateUnit 可以用来设置时间单位的间隔
    //between(Date beginDate, Date endDate, DateUnit unit)
    Date date= new Date();
    try {
        Thread.sleep(2000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    Date date1=new Date();
    System.out.println(DateUtil.between(date, date1, DateUnit.SECOND));
}

/**
 * formatDate()获取格式化日期
 */
@Test
public void testFormatDate(){
    System.out.println(DateUtil.formatDate(DateUtil.date()));
    //parse() 自动识别时间格式
    String dateStr = "2017-03-01";
    System.out.println(DateUtil.parse(dateStr));
    System.out.println("--------------------------------------");
    System.out.println(DateUtil.parse(dateStr, "yyyy-MM-dd"));

}

/**
 * isSameDay() 测试两个时间是否是同一天
 */
@Test
public void testIsSameDay(){
    String date1="2008-05-23";
    String date2="2009-05-23";
    System.out.println(DateUtil.isSameDay(DateUtil.parse(date1), DateUtil.parse(date2)));
    //offset() 时间偏移量
    Date date = DateUtil.parse("2017-03-01 22:33:23");
    //2017-03-02 22:33:23  时间偏移一天
    System.out.println(DateUtil.offset(date, DateField.DAY_OF_MONTH,1));
    //2017-03-03 22:33:23  时间偏移两天
    System.out.println(DateUtil.offsetDay(date,2));
    //2017-03-01 20:33:23  时间偏移-2小时
    System.out.println(DateUtil.offsetHour(date,-2));
    //昨天
    System.out.println(DateUtil.yesterday());
    //明天
    System.out.println(DateUtil.tomorrow());
    //上周
    System.out.println(DateUtil.lastWeek());
    //下周
    System.out.println(DateUtil.nextWeek());
    //上一个月
    System.out.println(DateUtil.lastMonth());
    //下一个月
    System.out.println(DateUtil.nextMonth());

}


/**
 * isDirectory() 是不是目录
 */
@Test
public void testIsDirectory(){
    String path1="D:/softInstall/QQ音乐";
    String path2="D:/softInstall/QQ音乐/高飞.mp3";
    System.out.println(FileUtil.isDirectory(path1));
    System.out.println(FileUtil.isDirectory(path2));

}

/**
 * exist() 路径是否存在
 */
@Test
public void testExist(){
    String path1="D:/softInstall";
    String path2="D:/笔记/多线程.md";
    System.out.println(FileUtil.exist(path1));//true
    System.out.println(FileUtil.exist(path2));//true

}

/**
 * file() 根据绝对路径或相对路径识别文件
 */
@Test
public void testFile(){
    File file=FileUtil.file("D:\\c.txt");
    File file2=FileUtil.file("D:\\a.txt");
    System.out.println(file.exists());//false
    System.out.println(file2.exists());//true
}

/**
 * mkdir()创建目录
 */
@Test
public void testMkdir(){
    String path="D:/testMkdir";
    FileUtil.mkdir(path);
    FileUtil.del(path);
}

@Test
public void testToBean(){
    JSONObject jsonObject=new JSONObject();
    jsonObject.set("name","dong");
    jsonObject.set("sex","男");
    jsonObject.set("age","18");
    User user = JSONUtil.toBean(jsonObject, User.class);
    System.out.println(user);


}

@Test
public void testToJsonStr(){
    JSONObject jsonObject=new JSONObject();
    jsonObject.set("name","dong");
    jsonObject.set("sex","男");
    jsonObject.set("age","18");
    //{"sex":"男","name":"dong","age":"18"}
    System.out.println(JSONUtil.toJsonStr(jsonObject));
}

/**
 * hide() 脱敏
 */
@Test
public void testHide() {
    String sfz="333212299878923098";
    System.out.println(StrUtil.hide(sfz,0,5));
    //结果:*****2299878923098
}

/**
 * length()计算字符串的长度
 */
@Test
public void testLength(){
    System.out.println(StrUtil.length("love"));//4
    //相比于String.length,我们还可以这样做
    System.out.println(StrUtil.length(1==1?"yes":"no"));//3
}
@Test
public void testIsNotEmpty(){
    System.out.println(StrUtil.isNotEmpty(""));//false
    System.out.println(StrUtil.isNotEmpty(null));//false
    System.out.println(StrUtil.isNotEmpty("love"));//true
    System.out.println(StrUtil.isNotEmpty(" "));//true
}

/**
 * newExecutor() 获得一个新的线程池
 */
@Test
public void testExecutor(){
    //初始化线程池,同时执行5个线程
    ExecutorService executor = ThreadUtil.newExecutor(5);
    //执行线程
    executor.execute(() -> {
        for (int i = 0; i < 4; i++) {
            //打印当前线程名字
            System.out.println("当前执行线程:" +new Thread().getName());
        }
    });
    executor.shutdown();
}


@Test
public void testRandomUUID(){
    System.out.println(UUID.randomUUID().toString());
    //结果生成类似:1b473b7e-1c01-4832-9507-ddcb9eb9242f 这样的字符串
}

/**
 * add()添加元素
 */
@Test
public void testAdd(){
    JSONArray jsonArray=new JSONArray();
    //将json对象添加到json数组,true表示按照添加时候的顺序
    jsonArray.add(new JSONObject(true).set("name","dong").set("age","18"));
    jsonArray.add(new JSONObject(true).set("name","sjbxsyl").set("age","28"));
    jsonArray.add(new JSONObject(true).set("name","lxr").set("age","16"));
    jsonArray.add(new JSONObject(true).set("name","hkmxy").set("age","12"));
    System.out.println(jsonArray);
}

}

posted @ 2021-09-10 15:12  এএ᭄念卿এএ᭄  阅读(1699)  评论(0编辑  收藏  举报