Apache Commons Lang3 基本工具类

目录

Commons Lang3 概述

Commons lang3 常用工具类

StringUtils 工具类方法汇总

RandomUtils 工具类方法汇总


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 子项目官网地址:http://commons.apache.org/proper/commons-lang/

4、Apache Commons Lang3 二进制包下载地址:http://commons.apache.org/proper/commons-lang/download_lang.cgi

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 文档:http://commons.apache.org/proper/commons-lang/javadocs/api-release/index.html

Commons lang3 常用工具类

工具类 描述 示例
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 工具类方法汇总

如下所有都是静态方法,可以直接调用,更多详细内容,参考官网

方法 描述

举例

isBlank(CharSequence cs) 判断目标字符串为空或者为null,空格也当作为空 StringUtils.isBlank(null)  = true
StringUtils.isBlank("")    = true
StringUtils.isBlank(" ")   = true
StringUtils.isBlank("bob")    = false
StringUtils.isBlank("  bob  ") = false
isNotBlank(CharSequence cs) 判断目标字符串不为空且不为null,空格也当作为空 StringUtils.isNotBlank(null) = false
StringUtils.isNotBlank("")    = false
StringUtils.isNotBlank(" ")   = false
StringUtils.isNotBlank("bob")     = true
StringUtils.isNotBlank("  bob  ")  = true
isEmpty(CharSequence cs) 判断目标字符串为空或者为null,空格不当作为空 StringUtils.isEmpty(null) = true
StringUtils.isEmpty("")    = true
StringUtils.isEmpty(" ")   = false
StringUtils.isEmpty("bob")     = false
StringUtils.isEmpty("  bob  ")  = false
isNotEmpty(CharSequence cs) 判断目标字符串不为空且不为null,空格不当作为空 StringUtils.isNotEmpty(null)  = false
StringUtils.isNotEmpty("")    = false
StringUtils.isNotEmpty(" ")  = true
StringUtils.isNotEmpty("bob")   = true
StringUtils.isNotEmpty("  bob  ") = true
isNumeric(CharSequence cs) 判断字符串是否是数字,不忽略空格 * StringUtils.isNumeric(null)   = false
* StringUtils.isNumeric("")     = false
* StringUtils.isNumeric("  ")   = false
* StringUtils.isNumeric("123")  = true
* StringUtils.isNumeric("\u0967\u0968\u0969")  = 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.isNumericSpace("")     = true
* StringUtils.isNumericSpace("  ")   = true
* StringUtils.isNumericSpace("123")  = true
* StringUtils.isNumericSpace("12 3") = true
* StringUtils.isNumeric("\u0967\u0968\u0969")  = true
* StringUtils.isNumeric("\u0967\u0968 \u0969")  = true
* StringUtils.isNumericSpace("ab2c") = false
* StringUtils.isNumericSpace("12-3") = false
* StringUtils.isNumericSpace("12.3") = false
isAlpha(CharSequence cs) 判断字符串是否是希腊字母,不忽略空格 * StringUtils.isAlpha(null)   = false
* StringUtils.isAlpha("")     = false
* StringUtils.isAlpha("  ")   = false
* StringUtils.isAlpha("abc")  = true
* StringUtils.isAlpha("ab2c") = false
* StringUtils.isAlpha("ab-c") = false
isAlphaSpace(CharSequence cs) 判断字符串是否是希腊字母,忽略空格 * StringUtils.isAlphaSpace(null)   = false
* StringUtils.isAlphaSpace("")     = true
* StringUtils.isAlphaSpace("  ")   = true
* StringUtils.isAlphaSpace("abc")  = true
* StringUtils.isAlphaSpace("ab c") = true
* StringUtils.isAlphaSpace("ab2c") = false
* StringUtils.isAlphaSpace("ab-c") = false
isAlphanumeric(CharSequence cs)
isAlphanumericSpace(CharSequence cs)

判断字符串是否是希腊字母与数字组成,不忽略空格 与 忽略空格

* StringUtils.isAlphanumeric("ab c") = false
* StringUtils.isAlphanumericSpace("ab c") = true
isAllLowerCase(CharSequence cs) 判断字符串是否全是小写字母 * StringUtils.isAllLowerCase(null)   = false
* StringUtils.isAllLowerCase("")     = false
* StringUtils.isAllLowerCase("  ")   = false
* StringUtils.isAllLowerCase("abc")  = true
* StringUtils.isAllLowerCase("abC")  = false
* StringUtils.isAllLowerCase("ab c") = false
* StringUtils.isAllLowerCase("ab1c") = false
* StringUtils.isAllLowerCase("ab/c") = false
isAllUpperCase(CharSequence cs) 判断字符串是否全大写字母 * StringUtils.isAllUpperCase(null)   = false
* StringUtils.isAllUpperCase("")     = false
* StringUtils.isAllUpperCase("  ")   = false
* StringUtils.isAllUpperCase("ABC")  = true
* StringUtils.isAllUpperCase("aBC")  = false
* StringUtils.isAllUpperCase("A C")  = false
* StringUtils.isAllUpperCase("A1C")  = false
* StringUtils.isAllUpperCase("A/C")  = false
contains(CharSequence seq, CharSequence searchSeq) 判断源字符串 seq 是否包含字符串 searchSeq。区分大小写 * StringUtils.contains(null, *)     = false
* StringUtils.contains(*, null)     = false
* StringUtils.contains("", "")      = true
* StringUtils.contains("abc", "")   = true
* StringUtils.contains("abc", "a")  = true
* StringUtils.contains("abc", "z")  = false
contains(CharSequence seq, int searchChar) 判断源字符串 seq 是否包含字符 searchChar。区分大小写 * StringUtils.contains(null, *)    = false
* StringUtils.contains("", *)      = false
* StringUtils.contains("abc", 'a') = true
* StringUtils.contains("abc", 'z') = false
containsAny(CharSequence cs, CharSequence searchChars) 判断源字符串 seq 是否包含字符串 searchChars。不区分大小写 * StringUtils.containsAny(null, *)               = false
* StringUtils.containsAny("", *)                 = false
* StringUtils.containsAny(*, null)               = false
* StringUtils.containsAny(*, "")                 = false
* StringUtils.containsAny("zzabyycdxx", "za")    = true
* StringUtils.containsAny("zzabyycdxx", "by")    = true
* StringUtils.containsAny("zzabyycdxx", "zy")    = true
* StringUtils.containsAny("zzabyycdxx", "\tx")   = true
* StringUtils.containsAny("zzabyycdxx", "$.#yF") = true
* StringUtils.containsAny("aba", "z")            = false
containsAny(CharSequence cs, CharSequence... searchCharSequences) searchCharSequences 数组中主要有任意一个匹配上就返回 true * StringUtils.containsAny(null, *)            = false
* StringUtils.containsAny("", *)              = false
* StringUtils.containsAny(*, null)            = false
* StringUtils.containsAny(*, [])              = false
* StringUtils.containsAny("abcd", "ab", null) = true
* StringUtils.containsAny("abcd", "ab", "cd") = true
* StringUtils.containsAny("abc", "d", "abc")  = true
trim(String str) 去掉字符串前后空格。为空时返回空,为 null 时返回 null(不是字符串null,防止空指针异常) * StringUtils.trim(null)          = null
* StringUtils.trim("")            = ""
* StringUtils.trim("     ")       = ""
* StringUtils.trim("abc")         = "abc"
* StringUtils.trim("    abc    ") = "abc"
trimToNull(String str) 去掉字符串前后空格。当为空时,返回 null(不是字符串null,防止空指针异常) * StringUtils.trimToNull(null)          = null
* StringUtils.trimToNull("")            = null
* StringUtils.trimToNull("     ")       = null
* StringUtils.trimToNull("abc")         = "abc"
* StringUtils.trimToNull("    abc    ") = "abc"
trimToEmpty(String str) 去掉字符串前后空格。当为 null 时,返回空 * StringUtils.trimToEmpty(null)          = ""
* StringUtils.trimToEmpty("")            = ""
* StringUtils.trimToEmpty("     ")       = ""
* StringUtils.trimToEmpty("abc")         = "abc"
* StringUtils.trimToEmpty("    abc    ") = "abc"
equals(CharSequence cs1, CharSequence cs2) 比较两个字符串是否相等,区分大小写 * StringUtils.equals(null, null)   = true
* StringUtils.equals(null, "abc")  = false
* 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(null, "abc")  = false
* StringUtils.equalsIgnoreCase("abc", null)  = false
* StringUtils.equalsIgnoreCase("abc", "abc") = true
* StringUtils.equalsIgnoreCase("abc", "ABC") = true
indexOf(CharSequence seq, CharSequence searchSeq) 查找 seq 中 searchSeq 第一次出现的索引位置,找不到返回 -1,区分大小写。 * StringUtils.indexOf(null, *)          = -1
* StringUtils.indexOf(*, null)          = -1
* StringUtils.indexOf("", "")           = 0
* 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(*, null, *)          = -1
* StringUtils.indexOf("", "", 0)           = 0
* StringUtils.indexOf("", *, 0)            = -1 (except when * = "")
* StringUtils.indexOf("aabaabaa", "a", 0)  = 0
* StringUtils.indexOf("aabaabaa", "b", 0)  = 2
* 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(*, null)                      = -1
* StringUtils.indexOfAny(*, [])                        = -1
* StringUtils.indexOfAny("zzabyycdxx", ["ab", "cd"])   = 2
* StringUtils.indexOfAny("zzabyycdxx", ["cd", "ab"])   = 2
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
* StringUtils.lowerCase("")    = ""
* StringUtils.lowerCase("aBc") = "abc"
upperCase(final String str) 字符串大写转小写 * StringUtils.upperCase(null)  = null
* StringUtils.upperCase("")    = ""
* StringUtils.upperCase("aBc") = "ABC"
abbreviate(final String str, final int maxWidth) 对 str 字符串进行省略号缩写,maxWidth 表示长度,必须大于等于4 * StringUtils.abbreviate(null, *)      = null
* StringUtils.abbreviate("", 4)        = ""
* StringUtils.abbreviate("abcdefg", 6) = "abc..."
* 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("")    = ""
* StringUtils.capitalize("cat") = "Cat"
* StringUtils.capitalize("cAt") = "CAt"
* StringUtils.capitalize("'cat'") = "'cat'"
center(final String str, final int size) 将 str 前后用空格填充,使总长度达到 size。size 本身小于 str 长度时,不做填充 * StringUtils.center(null, *)   = null
* StringUtils.center("", 4)     = "    "
* StringUtils.center("ab", -1)  = "ab"
* 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("", 4, ' ')     = "    "
* StringUtils.center("ab", -1, ' ')  = "ab"
* StringUtils.center("ab", 4, ' ')   = " ab "
* StringUtils.center("abcd", 2, ' ') = "abcd"
* StringUtils.center("a", 4, ' ')    = " a  "
* StringUtils.center("a", 4, 'y')    = "yayy"

compare(final String str1, final String str2)

compareIgnoreCase(final String str1, final String str2)

比较字符串 str1 与  str2 的大小。不忽略大小写 与 忽略大小写 * StringUtils.compare(null, null)   = 0
* StringUtils.compare(null , "a")   = -1
* StringUtils.compare("a", null)    = 1
* StringUtils.compare("abc", "abc") = 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("", *)         = 0
* StringUtils.countMatches("abba", null)  = 0
* StringUtils.countMatches("abba", "")    = 0
* StringUtils.countMatches("abba", "a")   = 2
* StringUtils.countMatches("abba", "ab")  = 1
* StringUtils.countMatches("abba", "xxx") = 0
String join(final Object[] array, final String separator) 将数组 array 使用分隔符 separator 连接成字符串 * StringUtils.join(null, *)                = null
* StringUtils.join([], *)                  = ""
* StringUtils.join([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"

String join(final Iterable<?> iterable, final String separator)

String join(final Iterator<?> iterator, final String separator)

将 Iterable 、Iterator 类型使用连接符连接

List<String> list = new ArrayList<String>();
list.add("唐");
list.add("宋");
list.add("元");
System.out.println(StringUtils.join(list,","));//唐,宋,元

* StringUtils.join(Arrays.asList(new String[]{null, "", "a"}), ';') = ;;a

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 值
发布了456 篇原创文章 · 获赞 988 · 访问量 108万+

猜你喜欢

转载自blog.csdn.net/wangmx1993328/article/details/102488632
今日推荐