博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CommonLang3中的StringUtils最全解析
阅读量:6489 次
发布时间:2019-06-24

本文共 13442 字,大约阅读时间需要 44 分钟。

isEmpty

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

isNotEmpty

public static boolean isNotEmpty(CharSequence cs)

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

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

isAnyEmpty

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

isNoneEmpty

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

isBlank

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

isNotBlank

public static boolean isNotBlank(CharSequence cs)

原理同上

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

isAnyBlank

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

isNoneBlank

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

trim

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"

变体有

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

不常用,跟trim()方法类似

strip

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"

equals

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

equalsIgnoreCse

public static boolean equalsIgnoreCase(CharSequence str1, CharSequence str2)

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

StringUtils.equalsIgnoreCase(null, null)   = trueStringUtils.equalsIgnoreCase(null, "abc")  = falseStringUtils.equalsIgnoreCase("abc", null)  = falseStringUtils.equalsIgnoreCase("abc", "abc") = trueStringUtils.equalsIgnoreCase("abc", "ABC") = true

indexOf

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

ordinalIndexOf

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

lastIndexOf

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

lastOrdinalIndexOf

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

contains

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

containsAny

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

substring

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"

left right mid

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)

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

split

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

join

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"

join

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"

deleteWhitespace

public static String deleteWhitespace(String str)

删除空格

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

removeStart

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"

rightPad

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"

leftPad

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"

center

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  "

capitalize

public static String capitalize(String str)

首字母大写

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

swapCase

public static String swapCase(String str)

反向大小写

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

isAlpha

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

defaultString

public static String defaultString(String str, String defaultStr)

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

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

reverse

public static String reverse(String str)

字符串翻转

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

abbreviate

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

warp

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://my.oschina.net/tensai/blog/3012993

你可能感兴趣的文章
命令详解
查看>>
nginx负载均衡
查看>>
spring 依赖注入
查看>>
javaWeb--(1)初识javaWeb
查看>>
综合技术----同步、异步、阻塞与非阻塞的理解
查看>>
功能测试用例模板
查看>>
个人记录
查看>>
2015Android移动开发应用主流菜单模式
查看>>
lnmp环境的搭建
查看>>
谈谈Java内存管理
查看>>
ViewPager如下效果你研究过吗?
查看>>
yii之验证码
查看>>
SQL标识列的查询
查看>>
springmvc 多方法访问
查看>>
变量取名一键直达——Codelf
查看>>
Linux 网络服务的基本配置
查看>>
C++第三方类库(后续添加,欢迎大家提供)
查看>>
中国数据8027seller梁——配置DNS服务器:
查看>>
Objective-c 网络编程3 NSURLSession
查看>>
JDK 动态代理
查看>>