Java - StringUtils(Apache - CommonLang3)

简介: Java - StringUtils(Apache - CommonLang3)

1、public static boolean isEmpty(CharSequence cs)

常用函数之一,判断字符串是否为""或者null

  • StringUtils.isEmpty(null) = true
  • StringUtils.isEmpty("") = true
  • StringUtils.isEmpty(" ") = false
  • StringUtils.isEmpty("bob") = false
  • StringUtils.isEmpty(" bob ") = false

2、public static boolean isNotEmpty(CharSequence cs)

最常用函数之一,跟上面方法相对

  • StringUtils.isNotEmpty(null) = false
  • StringUtils.isNotEmpty("") = false
  • StringUtils.isNotEmpty(" ") = true
  • StringUtils.isNotEmpty("bob") = true
  • StringUtils.isNotEmpty(" bob ") = true

3、public static boolean isAnyEmpty(CharSequence... css)

任意一个参数为空的话,返回true,如果这些参数都不为空的话返回false。在写一些判断条件的时候,这个方法还是很实用的。

  • StringUtils.isAnyEmpty(null) = true
  • StringUtils.isAnyEmpty(null, "foo") = true
  • StringUtils.isAnyEmpty("", "bar") = true
  • StringUtils.isAnyEmpty("bob", "") = true
  • StringUtils.isAnyEmpty(" bob ", null) = true
  • StringUtils.isAnyEmpty(" ", "bar") = false
  • StringUtils.isAnyEmpty("foo", "bar") = false

4、public static boolean isNoneEmpty(CharSequence... css)

任意一个参数是空,返回false;
所有参数都不为空,返回true。

注意这些方法的用法。

  • StringUtils.isNoneEmpty(null) = false
  • StringUtils.isNoneEmpty(null, "foo") = false
  • StringUtils.isNoneEmpty("", "bar") = false
  • StringUtils.isNoneEmpty("bob", "") = false
  • StringUtils.isNoneEmpty(" bob ", null) = false
  • StringUtils.isNoneEmpty(" ", "bar") = true
  • StringUtils.isNoneEmpty("foo", "bar") = true

5、public static boolean isBlank(CharSequence cs)

判断字符对象是不是空字符串,注意与isEmpty的区别。

  • StringUtils.isBlank(null) = true
  • StringUtils.isBlank("") = true
  • StringUtils.isBlank(" ") = true
  • StringUtils.isBlank("bob") = false
  • StringUtils.isBlank(" bob ") = false

6、public static boolean isNotBlank(CharSequence cs)

原理同上。

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

7、public static boolean isAnyBlank(CharSequence... css)

  • StringUtils.isAnyBlank(null) = true
  • StringUtils.isAnyBlank(null, "foo") = true
  • StringUtils.isAnyBlank(null, null) = true
  • StringUtils.isAnyBlank("", "bar") = true
  • StringUtils.isAnyBlank("bob", "") = true
  • StringUtils.isAnyBlank(" bob ", null) = true
  • StringUtils.isAnyBlank(" ", "bar") = true
  • StringUtils.isAnyBlank("foo", "bar") = false

8、public static boolean isNoneBlank(CharSequence... css)

  • StringUtils.isNoneBlank(null) = false
  • StringUtils.isNoneBlank(null, "foo") = false
  • StringUtils.isNoneBlank(null, null) = false
  • StringUtils.isNoneBlank("", "bar") = false
  • StringUtils.isNoneBlank("bob", "") = false
  • StringUtils.isNoneBlank(" bob ", null) = false
  • StringUtils.isNoneBlank(" ", "bar") = false
  • StringUtils.isNoneBlank("foo", "bar") = true

9、public static String trim(String str)

移除字符串两端的空字符串,制表符char <= 32如:\n \t
如果为空的话,返回空。

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

变体有,不常用,跟trim()方法类似。

  • public static String trimToNull(String str)
  • public static String trimToEmpty(String str)

10、public static String strip(String str)

public static String strip(String str, String stripChars)

str:被处理的字符串,可为空。
stripChars: 删除的字符串。

  • StringUtils.strip(null, *) = null
  • StringUtils.strip("", *) = ""
  • StringUtils.strip("abc", null) = "abc"
  • StringUtils.strip(" abc", null) = "abc"
  • StringUtils.strip("abc ", null) = "abc"
  • StringUtils.strip(" abc ", null) = "abc"
  • StringUtils.strip(" abcyx", "xyz") = " abc"

11、public static boolean 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

12、public static boolean equalsIgnoreCase(CharSequence str1, CharSequence str2)

上面方法的变体。字符串比较(忽略大小写),在验证码……等字符串比较,真是很实用。

  • 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

13、public static int indexOf(CharSequence seq, int searchChar)

indexOf这个方法不必多说,这个方法主要处理掉了空字符串的问题,不会报空指针,有一定用处。

  • StringUtils.indexOf(null, *) = -1
  • StringUtils.indexOf("", *) = -1
  • StringUtils.indexOf("aabaabaa", 'a') = 0
  • StringUtils.indexOf("aabaabaa", 'b') = 2

14、public static int ordinalIndexOf(CharSequence str, CharSequence searchStr, int ordinal)

字符串在另外一个字符串里,出现第Ordinal次的位置。

  • StringUtils.ordinalIndexOf(null, *, *) = -1
  • StringUtils.ordinalIndexOf(*, null, *) = -1
  • StringUtils.ordinalIndexOf("", "", *) = 0
  • StringUtils.ordinalIndexOf("aabaabaa", "a", 1) = 0
  • StringUtils.ordinalIndexOf("aabaabaa", "a", 2) = 1
  • StringUtils.ordinalIndexOf("aabaabaa", "b", 1) = 2
  • StringUtils.ordinalIndexOf("aabaabaa", "b", 2) = 5
  • StringUtils.ordinalIndexOf("aabaabaa", "ab", 1) = 1
  • StringUtils.ordinalIndexOf("aabaabaa", "ab", 2) = 4
  • StringUtils.ordinalIndexOf("aabaabaa", "", 1) = 0
  • StringUtils.ordinalIndexOf("aabaabaa", "", 2) = 0

15、public static int lastIndexOf(CharSequence seq, int searchChar)

字符串最后一次出现的位置。

  • StringUtils.lastIndexOf(null, *) = -1
  • StringUtils.lastIndexOf("", *) = -1
  • StringUtils.lastIndexOf("aabaabaa", 'a') = 7
  • StringUtils.lastIndexOf("aabaabaa", 'b') = 5

16、public static int lastOrdinalIndexOf(CharSequence str, CharSequence searchStr, int ordinal)

字符串searchStr在str里面出现倒数第ordinal出现的位置。

  • StringUtils.lastOrdinalIndexOf(null, *, *) = -1
  • StringUtils.lastOrdinalIndexOf(*, null, *) = -1
  • StringUtils.lastOrdinalIndexOf("", "", *) = 0
  • StringUtils.lastOrdinalIndexOf("aabaabaa", "a", 1) = 7
  • StringUtils.lastOrdinalIndexOf("aabaabaa", "a", 2) = 6
  • StringUtils.lastOrdinalIndexOf("aabaabaa", "b", 1) = 5
  • StringUtils.lastOrdinalIndexOf("aabaabaa", "b", 2) = 2
  • StringUtils.lastOrdinalIndexOf("aabaabaa", "ab", 1) = 4
  • StringUtils.lastOrdinalIndexOf("aabaabaa", "ab", 2) = 1
  • StringUtils.lastOrdinalIndexOf("aabaabaa", "", 1) = 8
  • StringUtils.lastOrdinalIndexOf("aabaabaa", "", 2) = 8

17、public static boolean contains(CharSequence seq, int searchChar)

字符串seq是否包含searchChar。

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

18、public static boolean containsAny(CharSequence cs, char... searchChars)

包含后面数组中的任意对象,返回true。

  • StringUtils.containsAny(null, *) = false
  • StringUtils.containsAny("", *) = false
  • StringUtils.containsAny(*, null) = false
  • StringUtils.containsAny(*, []) = false
  • StringUtils.containsAny("zzabyycdxx",['z','a']) = true
  • StringUtils.containsAny("zzabyycdxx",['b','y']) = true
  • StringUtils.containsAny("aba", ['z']) = false

19、public static String substring(String str, int start)

字符串截取。

  • StringUtils.substring(null, *) = null
  • StringUtils.substring("", *) = ""
  • StringUtils.substring("abc", 0) = "abc"
  • StringUtils.substring("abc", 2) = "c"
  • StringUtils.substring("abc", 4) = ""
  • StringUtils.substring("abc", -2) = "bc"
  • StringUtils.substring("abc", -4) = "abc"

这三个方法类似都是截取字符串。

  • public static String left(String str, int len)
  • public static String right(String str, int len)
  • public static String mid(String str, int pos, int len)

20、public static String[] split(String str, String separatorChars)

字符串分割。

  • StringUtils.split(null, *) = null
  • StringUtils.split("", *) = []
  • StringUtils.split("abc def", null) = ["abc", "def"]
  • StringUtils.split("abc def", " ") = ["abc", "def"]
  • StringUtils.split("abc def", " ") = ["abc", "def"]
  • StringUtils.split("ab:cd:ef", ":") = ["ab", "cd", "ef"]

21、public static String join(T... elements)

字符串连接。

  • StringUtils.join(null) = null
  • StringUtils.join([]) = ""
  • StringUtils.join([null]) = ""
  • StringUtils.join(["a", "b", "c"]) = "abc"
  • StringUtils.join([null, "", "a"]) = "a"

22、public static String join(Object[] array, char 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([null, "", "a"], ';') = ";;a"

23、public static String deleteWhitespace(String str)

删除空格。

  • StringUtils.deleteWhitespace(null) = null
  • StringUtils.deleteWhitespace("") = ""
  • StringUtils.deleteWhitespace("abc") = "abc"
  • StringUtils.deleteWhitespace(" ab c ") = "abc"

24、public static String removeStart(String str, String remove)

删除以特定字符串开头的字符串,如果没有的话,就不删除。

  • StringUtils.removeStart(null, *) = null
  • StringUtils.removeStart("", *) = ""
  • StringUtils.removeStart(*, null) = *
  • StringUtils.removeStart("www.domain.com", "www.") = "domain.com"
  • StringUtils.removeStart("domain.com", "www.") = "domain.com"
  • StringUtils.removeStart("www.domain.com", "domain") = "www.domain.com"
  • StringUtils.removeStart("abc", "") = "abc"

25、public static String rightPad(String str, int size, char padChar)

生成订单号,的时候还是很实用的。右边自动补齐。

  • StringUtils.rightPad(null, *, *) = null
  • StringUtils.rightPad("", 3, 'z') = "zzz"
  • StringUtils.rightPad("bat", 3, 'z') = "bat"
  • StringUtils.rightPad("bat", 5, 'z') = "batzz"
  • StringUtils.rightPad("bat", 1, 'z') = "bat"
  • StringUtils.rightPad("bat", -1, 'z') = "bat"

26、public static String leftPad(String str, int size, char padChar)

左边自动补齐。

  • StringUtils.leftPad(null, *, *) = null
  • StringUtils.leftPad("", 3, 'z') = "zzz"
  • StringUtils.leftPad("bat", 3, 'z') = "bat"
  • StringUtils.leftPad("bat", 5, 'z') = "zzbat"
  • StringUtils.leftPad("bat", 1, 'z') = "bat"
  • StringUtils.leftPad("bat", -1, 'z') = "bat"

27、public static String center(String str, 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 "

28、public static String capitalize(String str)

首字母大写。

  • StringUtils.capitalize(null) = null
  • StringUtils.capitalize("") = ""
  • StringUtils.capitalize("cat") = "Cat"
  • StringUtils.capitalize("cAt") = "CAt"

29、public static String swapCase(String str)

反向大小写。

  • StringUtils.swapCase(null) = null
  • StringUtils.swapCase("") = ""
  • StringUtils.swapCase("The dog has a BONE") = "tHE DOG HAS A bone"

30、public static boolean 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

31、public static String defaultString(String str, String defaultStr)

默认字符串,相当于三目运算,前面弱为空,则返回后面一个参数。

  • StringUtils.defaultString(null, "NULL") = "NULL"
  • StringUtils.defaultString("", "NULL") = ""
  • StringUtils.defaultString("bat", "NULL") = "bat"

32、public static String reverse(String str)

字符串翻转。

  • StringUtils.reverse(null) = null
  • StringUtils.reverse("") = ""
  • StringUtils.reverse("bat") = "tab"

33、public static String abbreviate(String str, int maxWidth)

缩略字符串,省略号要占三位。maxWith小于3位会报错。

  • 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

34、public static String abbreviate(String str, int offset, int maxWidth)

缩略字符串的一些高级用法。

  • StringUtils.abbreviate(null, *, *) = null
  • StringUtils.abbreviate("", 0, 4) = ""
  • StringUtils.abbreviate("abcdefghijklmno", -1, 10) = "abcdefg..."
  • StringUtils.abbreviate("abcdefghijklmno", 0, 10) = "abcdefg..."
  • StringUtils.abbreviate("abcdefghijklmno", 1, 10) = "abcdefg..."
  • StringUtils.abbreviate("abcdefghijklmno", 4, 10) = "abcdefg..."
  • StringUtils.abbreviate("abcdefghijklmno", 5, 10) = "...fghi..."
  • StringUtils.abbreviate("abcdefghijklmno", 6, 10) = "...ghij..."
  • StringUtils.abbreviate("abcdefghijklmno", 8, 10) = "...ijklmno"
  • StringUtils.abbreviate("abcdefghijklmno", 10, 10) = "...ijklmno"
  • StringUtils.abbreviate("abcdefghijklmno", 12, 10) = "...ijklmno"
  • StringUtils.abbreviate("abcdefghij", 0, 3) = IllegalArgumentException
  • StringUtils.abbreviate("abcdefghij", 5, 6) = IllegalArgumentException

35、public static String wrap(String str, char wrapWith)

包装,用后面的字符串对前面的字符串进行包装。

  • StringUtils.wrap(null, *) = null
  • StringUtils.wrap("", *) = ""
  • StringUtils.wrap("ab", '\0') = "ab"
  • StringUtils.wrap("ab", 'x') = "xabx"
  • StringUtils.wrap("ab", '\'') = "'ab'"
  • StringUtils.wrap("\"ab\"", '\"') = "\"\"ab\"\""

转自:https://blog.csdn.net/xuxiaoxie/article/details/52095930

目录
相关文章
|
8月前
|
Shell
Flume【问题记录 01】【at org.apache.flume.node.Application.main(Application.java:xxx) 类问题整理+其他类型问题总结】【避坑指南】
【2月更文挑战第17天】Flume【问题记录 01】【at org.apache.flume.node.Application.main(Application.java:xxx) 类问题整理+其他类型问题总结】【避坑指南】
402 2
|
5月前
|
消息中间件 Java Kafka
【Azure 事件中心】在微软云中国区 (Mooncake) 上实验以Apache Kafka协议方式发送/接受Event Hubs消息 (Java版)
【Azure 事件中心】在微软云中国区 (Mooncake) 上实验以Apache Kafka协议方式发送/接受Event Hubs消息 (Java版)
131 1
|
8月前
|
Java Maven
java.lang.NoSuchMethodError: org.apache.maven.model.validation.DefaultModelValidator
java.lang.NoSuchMethodError: org.apache.maven.model.validation.DefaultModelValidator
76 1
|
7月前
|
消息中间件 存储 Java
深度探索:使用Apache Kafka构建高效Java消息队列处理系统
【6月更文挑战第30天】Apache Kafka是分布式消息系统,用于高吞吐量的发布订阅。在Java中,开发者使用Kafka的客户端库创建生产者和消费者。生产者发送序列化消息到主题,消费者通过订阅和跟踪偏移量消费消息。Kafka以持久化、容灾和顺序写入优化I/O。Java示例代码展示了如何创建并发送/接收消息。通过分区、消费者组和压缩等策略,Kafka在高并发场景下可被优化。
131 1
|
7月前
|
Java 应用服务中间件 Apache
安装和配置Apache Tomcat是部署Java Web应用程序的常见任务
安装和配置Apache Tomcat是部署Java Web应用程序的常见任务
191 7
|
7月前
|
监控 Java 数据库连接
Java一分钟之-JDBC连接池:HikariCP, Apache DBCP, C3P0
【6月更文挑战第14天】本文介绍了Java中常用的三种JDBC连接池——HikariCP、Apache DBCP和C3P0。HikariCP以其高性能和低延迟领先,适合高并发环境;Apache DBCP稳定易配置;C3P0则提供高度可定制选项。文章讨论了各连接池的常见问题及避免策略,如配置不当、连接泄露等,并给出示例代码以供参考。选择合适的连接池并正确配置能有效提升应用性能。
220 7
|
8月前
|
分布式计算 Java 大数据
IO流【Java对象的序列化和反序列化、File类在IO中的作用、装饰器模式构建IO流体系、Apache commons-io工具包的使用】(四)-全面详解(学习总结---从入门到深化)
IO流【Java对象的序列化和反序列化、File类在IO中的作用、装饰器模式构建IO流体系、Apache commons-io工具包的使用】(四)-全面详解(学习总结---从入门到深化)
108 0
|
8月前
|
数据采集 机器学习/深度学习 Java
数据猎手:使用Java和Apache HttpComponents库下载Facebook图像
本文介绍了如何使用Java和Apache HttpComponents库从Facebook获取图像数据。通过设置爬虫代理IP以避免限制,利用HttpClient发送请求,解析HTML找到图像链接,然后下载并保存图片。提供的Java代码示例展示了实现过程,包括创建代理配置、线程池,以及下载图片的逻辑。注意,实际应用需根据Facebook页面结构进行调整。
数据猎手:使用Java和Apache HttpComponents库下载Facebook图像
|
6月前
|
easyexcel Java Apache
EasyExcel导入的时候报错Caused by: java.lang.NoClassDefFoundError: org/apache/poi/poifs/filesystem/File
EasyExcel导入的时候报错Caused by: java.lang.NoClassDefFoundError: org/apache/poi/poifs/filesystem/File
493 0
|
6月前
|
Java 应用服务中间件 API
如何安装与使用Java EE 8、Servlet 3.0及Apache Maven进行高效开发
【7月更文第1天】搭建高效Java EE 8开发环境,包括安装JDK、选择WildFly或Payara Server作为应用服务器,以及安装Apache Maven。使用Maven创建Servlet 3.0 Web项目,编写 HelloWorldServlet,打包部署到服务器,通过访问特定URL测试应用。这一流程助力开发者实现快速原型和大型项目开发。
141 0

推荐镜像

更多