Java常用工具类

在日常开发中,我们经常会用到各种工具类,熟练使用这些工具类,就能避免重复造轮子,提升开发效率。

相关依赖引入:

01
02
03
04
05
06
07
08
09
10
11
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>org.apache.commons.lang</artifactId>
    <version>2.4.0</version>
</dependency>
 
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>5.1.5.RELEASE</version>
</dependency>

1、字符串工具类

  • org.apache.commons.lang.StringUtils
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// 是否为空,空格字符为false
isEmpty(String str);
 
// 是否为非空,空格字符为true
isNotEmpty(String str);
 
// 是否为空,空格字符为true
isBlank(String str);
 
// 是否为非空,空格字符为false​​​​​​
isNotBlank(String str);
 
// 比较两个字符串是否相等,如果两个均为空则认为相等
equals(String str1,String str2);
 
// str中是否包含字符searchChar,str为null 或者 searchChar为null,返回false
contains(String str,char searchChar)
 
// 去除字符串两端的控制符,空字符串、null 返回 null
trim(String str);
 
// 去掉字符串str中所有包含remove的部分,然后返回
remove(String str,char remove);
 
// 把数组中的元素连接成一个字符串返回
join(Object[] array);
 
// 把数组中的元素拼接成一个字符串返回,把分隔符 split 也带上
join(Object[] array,char split);
 
// 如果字符串str是以remove开始,则去掉这个开始,然后返回,否则返回原来的串
removeStart(String str,String remove);
 
// 如果字符串str是以字符串remove结尾,则去掉这个结尾,然后返回,否则返回原来的串。
removeEnd(String str,String remove);
 
// 去除str 前端在stripChars中的字符
stripStart (String str,String stripChars);
 
// 去除str 后端在stripChars中的字符
stripEnd (String str,String stripChars);
 
// 从start 开始,包含start 那个字符,得到字符串str 的子串,如果start为负数,则从后面开始数起。如果str 为null 或者 "" 则返回其本身
subString(String str,int start);
 
// 从start 开始到end结束,包含start 那个字符,得到字符串str 的子串,如果start为负数,则从后面开始数起。如果str 为null 或者 "" 则返回其本身
subString(String str,int start,int end);
 
// 得到字符串separator第一次出现前的子串。不包含那个字符,如果str 为null 或者 "" 则返回其本身。
subStringBefore(String str,String separator);
 
// 得到字符串separator第一次出现后的子串,不包含那个字符,如果 str 为null,或者"",则返回其本身
subStringAfter(String str,String separator);
  • org.springframework.util.StringUtils
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
1、hasText
// 检查字符串中是否包含文本
 
2、hasLength
// 检测字符串是否长度大于0
 
3、isEmpty
// 检测字符串是否为空(若传入为对象,则判断对象是否为null)
 
4、commaDelimitedStringToArray
// 逗号分隔的String转换为数组
 
5、collectionToDelimitedString
// 把集合转为CSV格式字符串
 
6、replace
// 替换字符串
 
7、delimitedListToStringArray
// 相当于split
 
8、uncapitalize
// 首字母小写
 
9、collectionToDelimitedCommaString
// 把集合转为CSV格式字符串
 
10、tokenizeToStringArray
// 和split基本一样,但能自动去掉空白的单词

2、Bean工具类

  • org.springframework.beans.BeanUtils
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
1、copyPeoperties
// 复制属性值,从一个对象到另一个对象
 
2、getProperty
// 获取对象属性值
 
3、setProperty
// 设置对象属性值
 
4、populate
// 根据Map给属性复制
 
5、copyPeoperty
// 复制单个值,从一个对象到另一个对象。
 
6、cloneBean
// 克隆

3、IO流工具类

  • org.apache.commons.io.IOUtils
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
1、closeQuietly
// 关闭一个IO流、socket、或者selector且不抛出异常。通常放在finally块。
 
2、toString
// 转换IO流、Uri、byte[]为String。
 
3、copy
// IO流数据复制,从输入流写到输出流中,最大支持2GB。
 
4、toByteArray
// 从输入流、URI获取byte[]。
 
5、write
// 把字节、字符等写入输出流。
 
6、toInputStream
// 把字符转换为输入流。
 
7、readLines
// 从输入流中读取多行数据,返回List<String>
 
8、copyLarge
// 同copy,支持2GB以上数据的复制。
 
9、lineIterator
// 从输入流返回一个迭代器,根据参数要求读取的数据量,全部读取,如果数据不够,则失败。

4、文件工具类

  • org.apache.commons.io.FileUtils
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
1、deleteDirectory
// 删除文件夹
 
2、readFileToString
// 以字符形式读取文件内容。
 
3、deleteQueitly
// 删除文件或文件夹且不会抛出异常。
 
4、copyFile
// 复制文件
 
5、writeStringToFile
// 把字符写到目标文件,如果文件不存在,则创建。
 
6、forceMkdir
// 强制创建文件夹,如果该文件夹父级目录不存在,则创建父级。
 
7、write
// 把字符写到指定文件中
 
8、listFiles
// 列举某个目录下的文件(根据过滤器)
 
9、copyDirectory
// 复制文件夹
 
10、forceDelete
// 强制删除文件
  • org.apache.commons.io.FilenameUtils
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
1、getExtension
// 返回文件后缀名
 
2、getBaseName
// 返回文件名,不包含后缀名
 
3、getName
// 返回文件全名
 
4、concat
// 按命令行风格组合文件路径(详见方法注释)
 
5、removeExtension
// 删除后缀名
 
6、normalize
// 使路径正常化
 
7、wildcardMatch
// 匹配通配符
 
8、seperatorToUnix
// 路径分隔符改成unix系统格式的,即/
 
9、getFullPath
// 获取文件路径,不包括文件名
 
10、isExtension
// 检查文件后缀名是不是传入参数(List<String>)中的一个

5、数组工具类

  • org.apache.commons.lang.ArrayUtils
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
1、contains
// 是否包含某字符串
 
2、addAll
// 添加所有
 
3、clone
// 克隆一个数组
 
4、isEmpty
// 是否空数组
 
5、add
// 向数组添加元素
 
6、subarray
// 截取数组
 
7、indexOf
// 查找下标
 
8、isEquals
// 比较数组是否相等
 
9、toObject
// 基础类型数据数组转换为对应的Object数组

6、集合工具类

  • org.apache.commons.collections.CollectionUtils
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1、isEmpty
// 是否为空
 
2、select
// 根据条件筛选集合元素
 
3、transform
// 根据指定方法处理集合元素,类似List的map()。
 
4、filter
// 过滤元素,雷瑟List的filter()
 
5、find
// 基本和select一样
 
6、collect
// 和transform 差不多一样,但是返回新数组
 
7、forAllDo
// 调用每个元素的指定方法。
 
8、isEqualCollection
// 判断两个集合是否一致

7、加密工具类

  • org.apache.commons.codec.digest.DigestUtils
01
02
03
04
05
06
07
08
09
10
11
1、md5Hex
// MD5加密,返回32位
 
2、sha1Hex
// SHA-1加密
 
3、sha256Hex
// SHA-256加密
 
4、sha512Hex
// SHA-512加密

8、Entity工具类

  • org.apache.http.util.EntityUtils
01
02
03
04
05
06
07
08
09
10
11
12
13
14
1、toString
// 把Entity转换为字符串
 
2、consume
// 确保Entity中的内容全部被消费。可以看到源码里又一次消费了Entity的内容,假如用户没有消费,那调用Entity时候将会把它消费掉。
 
3、toByteArray
// 把Entity转换为字节流
 
4、consumeQuietly
// 和consume一样,但不抛异常
 
5、getContentCharset
// 获取内容的编码

9、属性操作工具类

  • org.apache.commons.beanutils.PropertyUtils
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1、getProperty
// 获取对象属性值
 
2、setProperty
// 设置对象属性值
 
3、getPropertyDiscriptor
// 获取属性描述器
 
4、isReadable
// 检查属性是否可访问
 
5、copyProperties
// 复制属性值,从一个对象到另一个对象
 
6、getPropertyDiscriptors
// 获取所有属性描述器
 
7、isWriteable
// 检查属性是否可写
 
8、getPropertyType
// 获取对象属性类型

发表评论

欢迎阅读『Java常用工具类|Java、开发语言、框架算法|Nick Tan-梓潼Blog』