Apache Commons Lang3 常用工具类库
目录
Commons Lang3 概述
Commons lang3 常用工具类
StringUtils 工具类方法汇总
RandomUtils 工具类方法汇总
RandomStringUtils 随机字符串
ObjectUtils 对象工具类
NumberUtils 数值工具类
ArrayUtils 通用数组操作工具类
ExceptionUtils 异常工具类
Pair对象对 与 Triple 三元对象组
Commons Lang3 概述
1、标准 java 库无法提供足够的方法来操作其核心类,apache commons lang 子项目提供了这些额外的方法。特别是字符串操作方法、基本数值方法、对象反射、并发、创建和序列化以及系统属性。经理再也不用担心空指针异常。此外 lang 还还包含对 java.util.date 的基本增强,以及一系列专门用于帮助构建方法的实用程序,如 hasHcode、toString 和 equals。
2、lang3.0(及其后续版本)使用的包(org.apache.commons.lang3)与以前的版本(org.apache.commons.lang)不同,允许它与以前的版本同时使用。
3、Apache Commons Lang3 子项目官网地址:Lang – Home
4、Apache Commons Lang3 二进制包下载地址:Lang – Download Apache Commons Lang
5、Apache Commons Lang3 Maven 依赖:
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.9</version>
</dependency>
6、Apache Commons Lang 3.9 API 文档:Apache Commons Lang 3.11 API
Commons lang3 常用工具类
工具类 | 描述 | 示例 |
---|---|---|
org.apache.commons.lang3.ObjectUtils | 对象工具类 | ObjectUtils.isNotEmpty(new int[]{}) = false |
org.apache.commons.lang3.math.NumberUtils | 数值工具类 |
NumberUtils.toInt(null) = 0, NumberUtils.toInt("1") = 1 |
org.apache.commons.lang3.ArrayUtils | 数组工具类 | ArrayUtils.remove([1, 0], 1) = [1] |
org.apache.commons.lang3.BooleanUtils | 布尔工具类 |
BooleanUtils.toInteger(true) = 1, BooleanUtils.toBoolean(1) = Boolean.TRUE |
org.apache.commons.lang3.RandomStringUtils | 随机字符串工具类 |
RandomStringUtils.randomAlphabetic(10) = "CtDdCZEldF", RandomStringUtils.randomGraph(10) = #vdP\eCl@F |
org.apache.commons.lang3.RandomUtils | 随机数值工具类 |
RandomUtils.nextBoolean(), RandomUtils.nextInt(100,1000) |
org.apache.commons.lang3.SystemUtils | 系统工具类 | SystemUtils.getUserHome() = "C:\Users\Think" |
org.apache.commons.lang3.time.DateFormatUtils | 日期格式化工具类,将日期转为指定格式的字符串 | DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:dd") = "2019-11-11 11:11:11" |
org.apache.commons.lang3.time.DateUtils | 日期工具类,将指定格式的字符串转为日期 | DateUtils.parseDate("1993-09-08 14:30:08","yyyy-MM-dd HH:mm:dd") |
StringUtils 工具类方法汇总
如下所有都是静态方法,可以直接调用,更多详细内容,参考官网。
方法 |
描述/举例 |
||
---|---|---|---|
//判断目标字符串为空或者为null,空格也当作为空 isBlank(CharSequence cs) |
StringUtils.isBlank(" ") = true |
StringUtils.isBlank(null) = true StringUtils.isBlank("") = true |
|
判断目标字符串不为空且不为null,空格也当作为空 isNotBlank(CharSequence cs) |
StringUtils.isNotBlank(null) = false |
StringUtils.isNotBlank(" ") = false StringUtils.isNotBlank("bob") = true StringUtils.isNotBlank(" bob ") = true |
|
判断目标字符串为空或者为null,空格不当作为空 isEmpty(CharSequence cs) |
StringUtils.isEmpty(null) = true |
StringUtils.isEmpty(" ") = false StringUtils.isEmpty("bob") = false StringUtils.isEmpty(" bob ") = false |
|
判断目标字符串不为空且不为null,空格不当作为空 isNotEmpty(CharSequence cs) |
StringUtils.isNotEmpty(null) = false |
StringUtils.isNotEmpty(" ") = true StringUtils.isNotEmpty("bob") = true StringUtils.isNotEmpty(" bob ") = true |
|
判断字符串是否是数字,不忽略空格 isNumeric(CharSequence cs) |
StringUtils.isNumeric(null) = false StringUtils.isNumeric("09") = true |
StringUtils.isNumeric("12 3") = false StringUtils.isNumeric("ab2c") = false StringUtils.isNumeric("12-3") = false StringUtils.isNumeric("12.3") = false StringUtils.isNumeric("-123") = false StringUtils.isNumeric("+123") = false |
|
判断字符串是否是数字,忽略空格 isNumericSpace(CharSequence cs) |
StringUtils.isNumericSpace(null) = false StringUtils.isNumeric("\u0967\u0968 \u0969") = true |
||
判断字符串是否是希腊字母,不忽略空格 isAlpha(CharSequence cs) |
StringUtils.isAlpha(null) = false |
StringUtils.isAlpha("abc") = true StringUtils.isAlpha("ab2c") = false StringUtils.isAlpha("ab-c") = false |
|
判断字符串是否是希腊字母,忽略空格 isAlphaSpace(CharSequence cs) |
StringUtils.isAlphaSpace(null) = false |
StringUtils.isAlphaSpace("abc") = true StringUtils.isAlphaSpace("ab c") = true StringUtils.isAlphaSpace("ab2c") = false StringUtils.isAlphaSpace("ab-c") = false |
|
isAlphanumeric(CharSequence cs) isAlphanumericSpace(CharSequence cs) |
判断字符串是否是希腊字母与数字组成,不忽略空格 与 忽略空格 |
||
判断字符串是否全是小写字母 isAllLowerCase(CharSequence cs) |
StringUtils.isAllLowerCase(null) = false StringUtils.isAllLowerCase("abC") = false |
||
判断字符串是否全大写字母 isAllUpperCase(CharSequence cs) |
StringUtils.isAllUpperCase(null) = false StringUtils.isAllUpperCase("aBC") = false |
||
判断源字符串 seq 是否包含字符串 searchSeq。区分大小写 contains(CharSequence seq, CharSequence searchSeq) |
StringUtils.contains(null, *) = false |
StringUtils.contains("abc", "") = true StringUtils.contains("abc", "a") = true StringUtils.contains("abc", "z") = false |
|
判断源字符串 seq 是否包含字符 searchChar。区分大小写 contains(CharSequence seq, int searchChar) |
StringUtils.contains(null, *) = false |
StringUtils.contains("abc", 'a') = true StringUtils.contains("abc", 'z') = false |
|
判断源字符串 seq 是否包含字符串 searchChars。不区分大小写 containsAny(CharSequence cs, CharSequence searchChars) |
StringUtils.containsAny(null, *) = false |
StringUtils.containsAny("zzabyycdxx", "by") = true StringUtils.containsAny("zzabyycdxx", "zy") = true |
|
searchCharSequences 数组中主要有任意一个匹配上就返回 true containsAny(CharSequence cs, CharSequence... searchCharSequences) |
StringUtils.containsAny(null, *) = false |
StringUtils.containsAny("abcd", "ab", null) = true StringUtils.containsAny("abcd", "ab", "cd") = true StringUtils.containsAny("abc", "d", "abc") = true |
|
去掉字符串前后空格。为空时返回空,为 null 时返回 null(不是字符串null,防止空指针异常) trim(String str) |
StringUtils.trim(null) = null |
StringUtils.trim("abc") = "abc" StringUtils.trim(" abc ") = "abc" |
|
去掉字符串前后空格。当为空时,返回 null(不是字符串null,防止空指针异常) trimToNull(String str) |
StringUtils.trimToNull(null) = null |
StringUtils.trimToNull("abc") = "abc" StringUtils.trimToNull(" abc ") = "abc" |
|
去掉字符串前后空格。当为 null 时,返回空 trimToEmpty(String str) |
StringUtils.trimToEmpty(null) = "" |
StringUtils.trimToEmpty("abc") = "abc" StringUtils.trimToEmpty(" abc ") = "abc" |
|
比较两个字符串是否相等,区分大小写 equals(CharSequence cs1, CharSequence cs2) |
StringUtils.equals(null, null) = true |
StringUtils.equals("abc", null) = false StringUtils.equals("abc", "abc") = true StringUtils.equals("abc", "ABC") = false |
|
比较两个字符串是否相等,不区分大小写 equalsIgnoreCase(CharSequence cs1, CharSequence cs2) |
StringUtils.equalsIgnoreCase(null, null) = true |
StringUtils.equalsIgnoreCase("abc", null) = false StringUtils.equalsIgnoreCase("abc", "abc") = true StringUtils.equalsIgnoreCase("abc", "ABC") = true |
|
查找 seq 中 searchSeq 第一次出现的索引位置,找不到返回 -1,区分大小写。 indexOf(CharSequence seq, CharSequence searchSeq) |
StringUtils.indexOf(null, *) = -1 |
StringUtils.indexOf("", *) = -1 (except when = "") StringUtils.indexOf("aabaabaa", "a") = 0 StringUtils.indexOf("aabaabaa", "b") = 2 StringUtils.indexOf("aabaabaa", "ab") = 1 StringUtils.indexOf("aabaabaa", "") =0 |
|
从指定位置开始查找 indexOf(final CharSequence seq, final CharSequence searchSeq, final int startPos) |
StringUtils.indexOf(null, *, *) = -1 |
StringUtils.indexOf("aabaabaa", "ab", 0) = 1 StringUtils.indexOf("aabaabaa", "b", 3) = 5 StringUtils.indexOf("aabaabaa", "b", 9) = -1 StringUtils.indexOf("aabaabaa", "b", -1) = 2 StringUtils.indexOf("aabaabaa", "", 2) = 2 StringUtils.indexOf("abc", "", 9) = 3 |
|
查找数组中任意元素在源字符串中出现的索引位置,满足多个时,取最小值 indexOfAny(final CharSequence str, final CharSequence... searchStrs) |
StringUtils.indexOfAny(null, *) = -1 |
StringUtils.indexOfAny("zzabyycdxx", ["mn", "op"]) = -1 StringUtils.indexOfAny("zzabyycdxx", ["zab", "aby"])=1 StringUtils.indexOfAny("zzabyycdxx", [""]) = 0 StringUtils.indexOfAny("", [""]) = 0 StringUtils.indexOfAny("", ["a"]) = -1 |
|
字符字母转小写 lowerCase(final String str) |
StringUtils.lowerCase(null) = null |
||
字符串字母转大写 upperCase(final String str) |
StringUtils.upperCase(null) = null |
StringUtils.upperCase("") = "" StringUtils.upperCase("aBc") = "ABC" |
|
对 str 字符串进行省略号缩写,maxWidth 表示长度,必须大于等于4 abbreviate(final String str, final int maxWidth) |
StringUtils.abbreviate(null, *) = null |
StringUtils.abbreviate("abcdefg", 7) = "abcdefg" StringUtils.abbreviate("abcdefg", 8) = "abcdefg" StringUtils.abbreviate("abcdefg", 4) = "a..." StringUtils.abbreviate("abcdefg", 3) = IllegalArgumentException |
|
将首字母转大写 capitalize(final String str) |
StringUtils.capitalize(null) = null |
StringUtils.capitalize("cat") = "Cat" StringUtils.capitalize("cAt") = "CAt" StringUtils.capitalize("'cat'") = "'cat'" |
|
将 str 前后用空格填充,使总长度达到 size。size 本身小于 str 长度时,不做填充 center(final String str, final int size) |
StringUtils.center(null, *) = null |
StringUtils.center("ab", 4) = " ab " StringUtils.center("abcd", 2) = "abcd" StringUtils.center("a", 4) = " a " |
|
使用指定字符串进行填充 center(String str, final int size, String padStr) |
StringUtils.center(null, *, *) = null |
StringUtils.center("ab", 4, ' ') = " ab " StringUtils.center("abcd", 2, ' ') = "abcd" StringUtils.center("a", 4, ' ') = " a " StringUtils.center("a", 4, 'y') = "yayy" |
|
比较字符串 str1 与 str2 的大小。不忽略大小写 与 忽略大小写 compare(final String str1, final String str2) compareIgnoreCase(final String str1, final String str2) |
StringUtils.compare(null, null) = 0 |
StringUtils.compare("a", "b") = -1 StringUtils.compare("b", "a") = 1 StringUtils.compare("a", "B") = 31 StringUtils.compare("ab", "abc") = -1 |
|
查找字符串中某个字符或字符串出现的次数 countMatches(final CharSequence str, final CharSequence sub) |
StringUtils.countMatches(null, *) = 0 StringUtils.countMatches("abba", "a") = 2 |
||
将数组 array 使用分隔符 separator 连接成字符串 String join(final Object[] array, final String separator) |
StringUtils.join(null, *) = null |
StringUtils.join(["a", "b", "c"], "--") = "a--b--c" StringUtils.join(["a", "b", "c"], null) = "abc" StringUtils.join(["a", "b", "c"], "") = "abc" StringUtils.join([null, "", "a"], ',') = ",,a" |
|
将 Iterable 、Iterator 类型使用连接符连接 String join(final Iterable<?> iterable, final String separator) String join(final Iterator<?> iterator, final String separator) |
List list = new ArrayList(); StringUtils.join(Arrays.asList(new String[]{null, "", "a"}), ';') = ;;a |
||
T defaultIfBlank(final T str, final T defaultStr) 当目标字符串(str)为空,或者为 null,或者是空格,则返回默认字符串(defaultStr) |
StringUtils.defaultIfBlank(null, "NULL") = "NULL" StringUtils.defaultIfBlank("", "NULL") = "NULL" StringUtils.defaultIfBlank(" ", "NULL") = "NULL" StringUtils.defaultIfBlank("bat", "NULL") = "bat" StringUtils.defaultIfBlank("", null) = null |
||
T defaultIfEmpty(final T str, final T defaultStr) 当目标字符串(str)为空,或者为 null,则返回默认字符串(defaultStr) |
StringUtils.defaultIfEmpty(null, "NULL") = "NULL" StringUtils.defaultIfEmpty("", "NULL") = "NULL" StringUtils.defaultIfEmpty(" ", "NULL") = " " StringUtils.defaultIfEmpty("bat", "NULL") = "bat" StringUtils.defaultIfEmpty("", null) = null |
RandomUtils 工具类方法汇总
底层也是使用 java.util.Random。
方法 | 描述 | |
---|---|---|
static int nextInt() | 生成 [0, Integer.MAX_VALUE) 之间的随机 int 值 | |
static int nextInt(final int startInclusive, final int endExclusive) | 生成 [startInclusive,endExclusive) 之间的随机整数,起始值不能小于终止值。 | |
static boolean nextBoolean() | 随机生成一个布尔值,true 或者 false | |
static long nextLong() | 生成 [0, Long.MAX_VALUE) 之间的 long 值 | |
long nextLong(final long startInclusive, final long endExclusive) | 生成 [startInclusive,endExclusive) 之间的随机 long 值 | |
static byte[] nextBytes(final int count) | 生成指定个数的字节数组,如 nextBytes(10) 生成的字节数组有 10 个 byte 元素 | |
static double nextDouble() | 生成 [0, Double.MAX_VALUE) 直接的随机 double 值 | |
double nextDouble(final double startInclusive, final double endInclusive) | 生成 [startInclusive,endExclusive) 之间的随机 double 值 | |
static float nextFloat() | 生成 [0, Float.MAX_VALUE) 之间的随机 fluat 值 | |
float nextFloat(final float startInclusive, final float endInclusive) | 生成 [startInclusive,endExclusive) 之间的随机 float 值 |
RandomStringUtils 随机字符串
random(final int count) |
创建长度为指定个数(count)的随机字符串,将从所有字符集中选择字符,不含字母和数字,如 "篊
Apache Commons Lang3 常用工具类库相关推荐
最新文章
热门文章 |