Java常用第三方工具类

news/2024/11/22 19:30:37/

一、Apache StringUtils:专为Java字符串而生的工具类

首先引入依赖:

<dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId>
</dependency>

1.字符串判空

isEmpty: 判断null和""

isNotEmpty:判断null和""

isBlank:判断null和""和" "

isNotBlank:判断null和""和" "

示例代码如下:

import org.apache.commons.lang3.StringUtils;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;/*** @author qinxun* @date 2023-06-09* @Descripion: StringUtils测试*/
@SpringBootTest
public class StringTest {@Testvoid test1() {String str1 = null;String str2 = "";String str3 = " ";String str4 = "abc";String str5 = "null";System.out.println(StringUtils.isEmpty(str1));System.out.println(StringUtils.isEmpty(str2));System.out.println(StringUtils.isEmpty(str3));System.out.println(StringUtils.isEmpty(str4));System.out.println(StringUtils.isEmpty(str5));System.out.println("=====");System.out.println(StringUtils.isNotEmpty(str1));System.out.println(StringUtils.isNotEmpty(str2));System.out.println(StringUtils.isNotEmpty(str3));System.out.println(StringUtils.isNotEmpty(str4));System.out.println(StringUtils.isNotEmpty(str5));System.out.println("=====");System.out.println(StringUtils.isBlank(str1));System.out.println(StringUtils.isBlank(str2));System.out.println(StringUtils.isBlank(str3));System.out.println(StringUtils.isBlank(str4));System.out.println(StringUtils.isBlank(str5));System.out.println("=====");System.out.println(StringUtils.isNotBlank(str1));System.out.println(StringUtils.isNotBlank(str2));System.out.println(StringUtils.isNotBlank(str3));System.out.println(StringUtils.isNotBlank(str4));System.out.println(StringUtils.isNotBlank(str5));}
}

执行结果:

true
true
false
false
false
=====
false
false
true
true
true
=====
true
true
true
false
false
=====
false
false
false
true
true

2.分割字符串

使用StringUtils的split()方法分割字符串成数组。

示例代码如下:

import org.apache.commons.lang3.StringUtils;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;import java.util.Arrays;/*** @author qinxun* @date 2023-06-09* @Descripion: StringUtils测试*/
@SpringBootTest
public class StringTest {@Testvoid test1() {String result = "a,b,c";String[] arr = StringUtils.split(result, ",");// 输出[a, b, c]System.out.println(Arrays.toString(arr));}
}

3.判断是否纯数字

使用StringUtils的isNumeric()方法判断字符串是否是纯数字形式。

示例代码如下:

import org.apache.commons.lang3.StringUtils;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;/*** @author qinxun* @date 2023-06-09* @Descripion: StringUtils测试*/
@SpringBootTest
public class StringTest {@Testvoid test1() {String data1 = "2";// 输出trueSystem.out.println(StringUtils.isNumeric(data1));String data2 = "hello";// 输出falseSystem.out.println(StringUtils.isNumeric(data2));}
}

4.将集合拼接成字符串

使用StringUtils的join(list,"拼接的字符")方法将集合的数据拼接成字符串。

示例代码如下:

import org.apache.commons.lang3.StringUtils;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;import java.util.ArrayList;
import java.util.List;/*** @author qinxun* @date 2023-06-09* @Descripion: StringUtils测试*/
@SpringBootTest
public class StringTest {@Testvoid test1() {List<String> list = new ArrayList<>();list.add("a");list.add("b");list.add("c");// 输出a,b,cSystem.out.println(StringUtils.join(list, ","));}
}

5.其他方法

  • trim(String str):去除字符串首尾的空白字符。
  • trimToEmpty(String str):去除字符串首尾的空白字符,如果字符串为 null,则返回空字符串。
  • trimToNull(String str):去除字符串首尾的空白字符,如果结果为空字符串,则返回 null。
  • equals(String str1, String str2):比较两个字符串是否相等。
  • equalsIgnoreCase(String str1, String str2):比较两个字符串是否相等,忽略大小写。
  • startsWith(String str, String prefix):检查字符串是否以指定的前缀开头。
  • endsWith(String str, String suffix):检查字符串是否以指定的后缀结尾。
  • contains(String str, CharSequence seq):检查字符串是否包含指定的字符序列。
  • indexOf(String str, CharSequence seq):返回指定字符序列在字符串中首次出现的索引,如果没有找到,则返回 -1。
  • lastIndexOf(String str, CharSequence seq):返回指定字符序列在字符串中最后一次出现的索引,如果没有找到,则返回 -1。
  • substring(String str, int start, int end):截取字符串中指定范围的子串。
  • replace(String str, String searchString, String replacement):替换字符串中所有出现的搜索字符串为指定的替换字符串。
  • replaceAll(String str, String regex, String replacement):使用正则表达式替换字符串中所有匹配的部分。
  • join(Iterable<?> iterable, String separator):使用指定的分隔符将可迭代对象中的元素连接为一个字符串。
  • split(String str, String separator):使用指定的分隔符将字符串分割为一个字符串数组。
  • capitalize(String str):将字符串的第一个字符转换为大写。
  • uncapitalize(String str):将字符串的第一个字符转换为小写。

二、Hutool工具包

引入依赖:

<!--hutool-->
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.12</version>
</dependency>

1.类型转换

我们接收客户端传过来的数据的时候,通常我们需要把这些数据转换成我们需要的数据类型。

示例代码如下:

import cn.hutool.core.convert.Convert;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;/*** @author qinxun* @date 2023-06-09* @Descripion: hutool测试*/
@SpringBootTest
public class HutoolTest {@Testvoid test1() {String param = null;// 输出nullSystem.out.println(Convert.toInt(param));// 设置了默认值 输出0System.out.println(Convert.toInt(param, 0));// 输出Fri Jun 09 00:00:00 CST 2023System.out.println(Convert.toDate("2023年06月09日"));}
}

2.日期时间转换

示例代码如下:

import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;import java.util.Date;/*** @author qinxun* @date 2023-06-09* @Descripion: hutool测试*/
@SpringBootTest
public class HutoolTest {@Testvoid test1() {// 输出2023-06-09 09:55:24System.out.println(DateUtil.date());// 输出2023-06-09 00:00:00DateTime dateTime = DateUtil.parse("2023-06-09");System.out.println(dateTime);// 输出2023-06-09Date date = new Date();System.out.println(DateUtil.formatDate(date));}
}

3.反射工具

Hutool 封装的反射工具 ReflectUtil 包括:

  • 获取构造方法
  • 获取字段
  • 获取字段值
  • 获取方法
  • 执行方法(对象方法和静态方法)

示例代码如下:

import cn.hutool.core.util.ReflectUtil;import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;/*** @author qinxun* @date 2023-06-09* @Descripion: ReflectUtil测试*/
public class ReflectTest {private int id;public ReflectTest() {System.out.println("构造方法");}public void show() {System.out.println("普通方法");}public static void main(String[] args) throws IllegalAccessException {// 获取对象ReflectTest reflectTest = ReflectUtil.newInstance(ReflectTest.class);reflectTest.show();// 构造方法Constructor[] constructors = ReflectUtil.getConstructors(ReflectTest.class);for (Constructor constructor : constructors) {System.out.println(constructor.getName());}// 获取字段Field field = ReflectUtil.getField(ReflectTest.class, "id");field.setInt(reflectTest, 20);// 输出20System.out.println(ReflectUtil.getFieldValue(reflectTest, field));Method[] methods = ReflectUtil.getMethods(ReflectTest.class);for (Method method : methods) {System.out.println(method.getName());}// 获取指定方法Method method = ReflectUtil.getMethod(ReflectTest.class, "show");System.out.println(method.getName());// 执行方法 输出普通方法ReflectUtil.invoke(reflectTest, "show");}
}

4.身份证工具

使用IdcardUtil的isValidCard验证身份证是否合法。

示例代码如下:

import cn.hutool.core.util.IdcardUtil;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;/*** @author qinxun* @date 2023-06-09* @Descripion: hutool测试*/
@SpringBootTest
public class HutoolTest {@Testvoid test1() {// 输出falseSystem.out.println(IdcardUtil.isValidCard("43243"));}
}

5.字段验证器

验证客户端传过来的数据,比如手机号码、邮箱、IP地址等是否合法。

示例代码如下:

import cn.hutool.core.lang.Validator;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;/*** @author qinxun* @date 2023-06-09* @Descripion: hutool测试*/
@SpringBootTest
public class HutoolTest {@Testvoid test1() {String email = "hello@qq.com";// 输出trueSystem.out.println(Validator.isEmail(email));String mobile = "1887888";// 输出falseSystem.out.println(Validator.isMobile(mobile));String ip = "192.168";// 输出falseSystem.out.println(Validator.isIpv4(ip));}
}

6.缓存工具

CacheUtil 是 Hutool 封装的创建缓存的快捷工具类,可以创建不同的缓存对象:

  • FIFOCache:先入先出,元素不停的加入缓存直到缓存满为止,当缓存满时,清理过期缓存对象,清理后依旧满则删除先入的缓存。
  • LFUCache,最少使用,根据使用次数来判定对象是否被持续缓存,当缓存满时清理过期对象,清理后依旧满的情况下清除最少访问的对象并将其他对象的访问数减去这个最少访问数,以便新对象进入后可以公平计数。
  • LRUCache,最近最久未使用,根据使用时间来判定对象是否被持续缓存,当对象被访问时放入缓存,当缓存满了,最久未被使用的对象将被移除。

示例代码如下:

import cn.hutool.cache.Cache;
import cn.hutool.cache.CacheUtil;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;/*** @author qinxun* @date 2023-06-09* @Descripion: hutool测试*/
@SpringBootTest
public class HutoolTest {@Testvoid test1() {Cache<String, String> fifoCache = CacheUtil.newFIFOCache(3);fifoCache.put("key1", "a");fifoCache.put("key2", "b");fifoCache.put("key3", "c");fifoCache.put("key4", "d");// 缓存大小为 3,所以 key4 放入后 key1 被清除 输出nullSystem.out.println(fifoCache.get("key1"));// 输出bSystem.out.println(fifoCache.get("key2"));Cache<String, String> lfuCache = CacheUtil.newLFUCache(3);lfuCache.put("key1", "a");// 使用次数+1lfuCache.get("key1");lfuCache.put("key2", "b");lfuCache.put("key3", "c");lfuCache.put("key4", "d");// 由于缓存容量只有 3,当加入第 4 个元素的时候,最少使用的将被移除(2,3被移除)// 都是输出nullSystem.out.println(lfuCache.get("key2"));System.out.println(lfuCache.get("key3"));Cache<String, String> lruCache = CacheUtil.newLRUCache(3);lruCache.put("key1", "a");lruCache.put("key2", "b");lruCache.put("key3", "c");// 使用时间近了lruCache.get("key1");lruCache.put("key4", "d");// 由于缓存容量只有 3,当加入第 4 个元素的时候,最久使用的将被移除(2)String value2 = lruCache.get("key2");// 输出nullSystem.out.println(value2);}
}

三、Guava:Google开源的Java工具库 

引入依赖

<!--guava-->
<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>31.1-jre</version>
</dependency>

1.字符串处理

import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;import java.util.Optional;/*** @author qinxun* @date 2023-06-09* @Descripion: Guava测试*/
@SpringBootTest
public class GuavaTest {@Testvoid test() {// 1.字符串拼接Joiner joiner = Joiner.on(",");// 输出hello,world,qqSystem.out.println(joiner.join("hello", "world", "qq"));// 2.字符串拆分String data = "hello,world,qq";// 输出[hello, world, qq]System.out.println(Splitter.on(",").splitToList(data));}
}

2.集合工具

示例代码如下:

import com.google.common.collect.Lists;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;/*** @author qinxun* @date 2023-06-09* @Descripion: Guava测试*/
@SpringBootTest
public class GuavaTest {@Testvoid test() {// 创建空集合List<Integer> emptyList = Lists.newArrayList();// 初始化集合List<Integer> initList = Lists.newArrayList(1, 2, 3);// 输出[]System.out.println(emptyList);// 输出[1, 2, 3]System.out.println(initList);}
}


http://www.ppmy.cn/news/292587.html

相关文章

webgpu之旅03

19854902 319854902 319854902 319854902 webgpu交Q流群我们找个例子看看别人的renderer three.js v152 首先init函数 看见中间有个对象 WebGPURenderPipelines 跟进去看看 这个构造函数里可以看见有这么些数据 get( renderObject ) {const device this.device;const cache …

锂电池技术

三元锂电池 三元锂电池的三元素分别叫“镍”“钴”“锰”&#xff0c;配方分别有111&#xff0c;523&#xff0c;811&#xff0c;代表这三种元素在这个电池里所占含量百分比&#xff1a; 111就是各33.33%523就是镍50%&#xff0c;钴20%&#xff0c;锰30%811就是镍80%&#xf…

九龙证券|铁锂电池是什么?铁锂电池的工作原理和优点介绍

铁锂电池是锂电池家族中的一类电池&#xff0c;全名是磷酸铁锂锂离子电池&#xff0c;正极资料主要为磷酸铁锂资料。因为其功能特别适合于动力方面的应用&#xff0c;因此也有人叫它“锂铁动力电池”。&#xff08;以下简称“锂铁电池”&#xff09; 铁锂电池的工作原理&#x…

太阳能电池片制造工艺

太阳能电池又称为“太阳能芯片”或“光电池”&#xff0c;是一种利用太阳光直接发电的光电半导体薄片。它只要被满足一定照度条件的光照到&#xff0c;瞬间就可输出电压及在有回路的情况下产生电流。在物理学上称为太阳能光伏&#xff08;Photovoltaic&#xff0c;缩写为PV&…

三元锂电池 VS 磷酸铁锂电池

三元锂电池 三元锂电池是指正极材料以镍盐、钴盐、锰盐/铝酸锂 三种元素&#xff0c;负极材料以石墨&#xff0c;电解质以六氟磷酸锂为主的锂盐锂电池。 具有能量密度高&#xff0c;安全稳定性好&#xff0c;支持高倍率放电等优异的电化学特性&#xff0c;以及价格适中的成本优…

霍克锂电池结构

霍克磷酸铁锂动力电池使用注意事项 使用电池前应认真阅读《用户使用手册》&#xff0c;防止误操作。电池应牢固安装&#xff0c;避免受强烈冲击或震动。非专业人士不得拆卸电池器件&#xff0c;否则易造成短路等重大安全事故。电池充放电口与外部充电和负载的插头连接应正确可…

施努卡:锂电池生产线设备(锂电池生产主要有些什么设备)

中国是世界上锂电池生产的主要基地&#xff0c;同时是第二大生产国和出口国。作为新能源行业&#xff0c;锂电池有着非常广阔的发展前景。 如今&#xff0c;它的应用已经非常普遍。我们手上拿的手机、手表、工作用的电脑、上下班开的电动车、家用小电器&#xff0c;都用到锂电…

锂电池SOH

电池健康状态(SOH)评估对电池的使用、维护和经济性分析具有指导意义&#xff0c;然而电池的健康状态评估缺少针对性的整理和总结。本文综述了锂电池健康状态的定义、影响因素、评估模型以及研究难点。 锂电池的老化是一个长期渐变的过程&#xff0c;电池的健康状态受温度、电流…