CommonLang3中的StringUtils最全解析

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)   = true
StringUtils.equalsIgnoreCase(null, "abc")  = false
StringUtils.equalsIgnoreCase("abc", null)  = false
StringUtils.equalsIgnoreCase("abc", "abc") = true
StringUtils.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 <T> 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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值