目录

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("bob")    = false
StringUtils.isBlank("  bob  ") = false

StringUtils.isBlank(null)  = true
StringUtils.isBlank("")    = true

判断目标字符串不为空且不为null,空格也当作为空

isNotBlank(CharSequence cs)

StringUtils.isNotBlank(null) = false
StringUtils.isNotBlank("")    = false

StringUtils.isNotBlank(" ")   = false
StringUtils.isNotBlank("bob")     = true
StringUtils.isNotBlank("  bob  ")  = true

判断目标字符串为空或者为null,空格不当作为空

isEmpty(CharSequence cs)

StringUtils.isEmpty(null) = true
StringUtils.isEmpty("")    = true

StringUtils.isEmpty(" ")   = false
StringUtils.isEmpty("bob")     = false
StringUtils.isEmpty("  bob  ")  = false

判断目标字符串不为空且不为null,空格不当作为空

isNotEmpty(CharSequence cs)

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("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.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

判断源字符串 seq 是否包含字符串 searchSeq。区分大小写

contains(CharSequence seq, CharSequence 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

判断源字符串 seq 是否包含字符 searchChar。区分大小写

contains(CharSequence seq, int searchChar)

StringUtils.contains(null, *)    = false
StringUtils.contains("", *)      = false

StringUtils.contains("abc", 'a') = true
StringUtils.contains("abc", 'z') = false

判断源字符串 seq 是否包含字符串 searchChars。不区分大小写

containsAny(CharSequence cs, CharSequence 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

searchCharSequences 数组中主要有任意一个匹配上就返回 true

containsAny(CharSequence cs, CharSequence... searchCharSequences)

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

去掉字符串前后空格。为空时返回空,为 null 时返回 null(不是字符串null,防止空指针异常)

trim(String str)

StringUtils.trim(null)   = null
StringUtils.trim("")  = ""
StringUtils.trim("     ")       = ""

StringUtils.trim("abc")         = "abc"
StringUtils.trim("    abc    ") = "abc"

去掉字符串前后空格。当为空时,返回 null(不是字符串null,防止空指针异常)

trimToNull(String str)

StringUtils.trimToNull(null)          = null
StringUtils.trimToNull("")            = null
StringUtils.trimToNull("     ")       = null

StringUtils.trimToNull("abc")         = "abc"
StringUtils.trimToNull("    abc    ") = "abc"

去掉字符串前后空格。当为 null 时,返回空

trimToEmpty(String str)

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

查找 seq 中 searchSeq 第一次出现的索引位置,找不到返回 -1,区分大小写。

indexOf(CharSequence seq, CharSequence searchSeq)

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
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"

对 str 字符串进行省略号缩写,maxWidth 表示长度,必须大于等于4

abbreviate(final String str, final int maxWidth)

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'"

将 str 前后用空格填充,使总长度达到 size。size 本身小于 str 长度时,不做填充

center(final String str, final int size)

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"

比较字符串 str1 与  str2 的大小。不忽略大小写 与 忽略大小写

compare(final String str1, final String str2)

compareIgnoreCase(final String str1, final String 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

将数组 array 使用分隔符 separator 连接成字符串

String join(final Object[] array, final String 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"

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

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

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

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

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 常用工具类库相关推荐

  1. Apache commons lang3 StringUtils工具类

    Apache commons lang3 StringUtils工具类 Apache commons lang3包下的StringUtils工具类中封装了一些字符串操作的方法,非常实用,使用起来也非常 ...

  2. Java中字符串工具类继承org.apache.commons.lang3.StringUtils类代码

    场景 转换为字节数组:是否包含字符串:替换掉HTML标签方法:替换为手机识别的HTML,去掉样式及属性,保留回车: 缩略字符串(不区分中英文字符):转换为Double类型:转换为Float类型:转换为 ...

  3. 工具类org.apache.commons.lang3.StringUtils

    sEmpty 和 isBlank 的区别你知道吗?也许你除了isEmpty/isNotEmpty/isNotBlank/isBlank外,并不知道还有isAnyEmpty/isNoneEmpty/is ...

  4. Java常用工具类库

    Java常用工具类库 1. java自带工具方法 2. apache commons工具类库 2.1 commons-lang,java.lang的增强版 2.2 commons-collection ...

  5. Apache Commons包 StringUtils工具类深入整理(转载)

    [转载地址]:cnblogs.com/sealy321/p/10227131.html 字符串是在程序开发中最常见的,Apache Commons开源项目在org.apache.commons.lan ...

  6. Java的org.apache.commons.lang3.StringUtils

    Java的org.apache.commons.lang3.StringUtils 1.用途 StringUtils提供了对String 类型的常用操作方法(如判空等).StringUtils中的方法 ...

  7. java的StringUtils.isBlank和StringUtils.isEmpty方法区别(org.apache.commons.lang3.StringUtils)

    前言 估计很多朋友跟我一样,平时也不会特别去注意究竟用isBlank还是isEmpty去判断空字符串,但是大部分场景优先使用isBlank就对了. isEmpty是否为空,只有当==null或者==& ...

  8. 日期处理类org.apache.commons.lang3.time.DateUtils

    日期处理类org.apache.commons.lang3.time.DateUtils/*** 以秒为标准时间的毫秒数*/public static final long MILLIS_PER_SE ...

  9. org.apache.commons.lang3.StringUtils 的相关用法

    一.jar包下载 commons-lang3-3.1.jar java 开发工具commons-lang3-3.0 jar包,有org.apache.commons.lang3.StringUtils ...

  10. 程序中的日期使用问题-格式转化:SimpleDateFormat、org.apache.commons.lang3.time.DateUtils

    前言 日期使用问题主要是格式转换的问题 场景:通过excel导入数据,其中一个字段为出生日期,需要对字段值进行合法性校验 博客地址:芒果橙的个人博客 [http://mangocheng.com] 文 ...

最新文章

  1. 如何快速get到AI工程师面试重点,这12道题必备!
  2. 全球及中国成人病袍行业专项调研评估及未来发展趋势预测报告2021-2027年版
  3. 机器视觉LED光源的选择及其性能优势
  4. java jdom2_JDOM 生成和解析XML(二)
  5. java开发面试 自我介绍!!!!!
  6. 贝塞尔曲线及实践案例
  7. 2022年N1叉车司机考试题目及答案
  8. java oracle spatial_安装Oracle Spatial数据组件
  9. c语言的论文,C语言论文
  10. python如何编写温度转换_Python温度转换实例分析
  11. 六张思维导图,读懂项目管理
  12. [转载]刘峰获“区块链60人”2020赋能中国区块链创新人物奖
  13. 30张地图看懂世界格局,用大数据说话
  14. 计算机工程制图箭头怎么画,AutoCAD制图时怎么画剖视的箭头 AutoCAD箭头画法教程...
  15. MySQL数据库(四):多表查询、视图、事务、索引、函数、Go连接MySQL
  16. Android中SQLite应用详解
  17. BUU-pwn(一)
  18. Android逆向移花接木之添加注册机制
  19. 我的数学学习回忆录——一个数学爱好者的反思(一)
  20. 怎么电脑计算机管理员去掉,电脑取消管理员密码设置在哪里

热门文章

  1. 深入理解strcpy,strncpy
  2. 拓端tecdat|数据分析促进白血病预测诊断
  3. 拓端tecdat|R语言中的马尔可夫区制转移(Markov regime switching)模型
  4. Tensorflow训练简单神经网络
  5. JAVA程序将PDF转化为TXT
  6. Java从入门到精通 第21章 Annotation
  7. Caffe编译 Mnist训练测试---基本参数学习
  8. 使用windows远程桌面连接ubuntu
  9. 【Caffe实践】基于CNN的性别、年龄识别
  10. toad库进行分箱操作