您的位置:首页 > 其它

CommonLang3中的StringUtils最全解析

2016-08-03 16:06 274 查看
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
public static boolean isNotEmpty(CharSequence cs)
最常用函数之一,跟上面方法相对
StringUtils.isNotEmpty(null)      = false
StringUtils.isNotEmpty("")        = false
StringUtils.isNotEmpty(" ")       = true
StringUtils.isNotEmpty("bob")     = true
StringUtils.isNotEmpty("  bob  ") = true
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
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
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
public static boolean isNotBlank(CharSequence cs)
StringUtils.isNotBlank(null)      = false
StringUtils.isNotBlank("")        = false
StringUtils.isNotBlank(" ")       = false
StringUtils.isNotBlank("bob")     = true
StringUtils.isNotBlank("  bob  ") = true
原理同上
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
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
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()方法类似
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"
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
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
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
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
public static int lastIndexOf(CharSequence seq,int searchChar)
字符串最后一次出现的位置
 StringUtils.lastIndexOf(null, *)         = -1StringUtils.lastIndexOf("", *)           = -1StringUtils.lastIndexOf("aabaabaa", 'a') = 7StringUtils.lastIndexOf("aabaabaa", 'b') = 5
public static int lastOrdinalIndexOf(CharSequence str,CharSequence searchStr,int ordinal)
 字符串searchStr在str里面出现倒数第ordinal出现的位置
StringUtils.lastOrdinalIndexOf(null, *, *)          = -1StringUtils.lastOrdinalIndexOf(*, null, *)          = -1StringUtils.lastOrdinalIndexOf("", "", *)           = 0StringUtils.lastOrdinalIndexOf("aabaabaa", "a", 1)  = 7StringUtils.lastOrdinalIndexOf("aabaabaa", "a", 2)  = 6StringUtils.lastOrdinalIndexOf("aabaabaa", "b", 1)  = 5StringUtils.lastOrdinalIndexOf("aabaabaa", "b", 2)  = 2StringUtils.lastOrdinalIndexOf("aabaabaa", "ab", 1) = 4StringUtils.lastOrdinalIndexOf("aabaabaa", "ab", 2) = 1StringUtils.lastOrdinalIndexOf("aabaabaa", "", 1)   = 8StringUtils.lastOrdinalIndexOf("aabaabaa", "", 2)   = 8
public static boolean contains(CharSequence seq,int searchChar)
字符串seq是否包含searchChar
 StringUtils.contains(null, *)    = falseStringUtils.contains("", *)      = falseStringUtils.contains("abc", 'a') = trueStringUtils.contains("abc", 'z') = false
public static boolean containsAny(CharSequence cs,char... searchChars)
包含后面数组中的任意对象,返回true
 StringUtils.containsAny(null, *)                = falseStringUtils.containsAny("", *)                  = falseStringUtils.containsAny(*, null)                = falseStringUtils.containsAny(*, [])                  = falseStringUtils.containsAny("zzabyycdxx",['z','a']) = trueStringUtils.containsAny("zzabyycdxx",['b','y']) = trueStringUtils.containsAny("aba", ['z'])           = false
public static String substring(String str,int start)
字符串截取 
StringUtils.substring(null, *)   = nullStringUtils.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)
这三个方法类似都是截取字符串
public static String[] split(String str,String separatorChars)
字符串分割 
StringUtils.split(null, *)         = nullStringUtils.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"]
public static <T> String join(T... elements)
字符串连接
StringUtils.join(null)            = nullStringUtils.join([])              = ""StringUtils.join([null])          = ""StringUtils.join(["a", "b", "c"]) = "abc"StringUtils.join([null, "", "a"]) = "a"
public static String join(Object[] array,char separator)
特定字符串连接数组,很多情况下还是蛮实用,不用自己取拼字符串 
StringUtils.join(null, *)               = nullStringUtils.join([], *)                 = ""StringUtils.join([null], *)             = ""StringUtils.join(["a", "b", "c"], ';')  = "a;b;c"StringUtils.join(["a", "b", "c"], null) = "abc"StringUtils.join([null, "", "a"], ';')  = ";;a"
public static String deleteWhitespace(String str)
删除空格 
StringUtils.deleteWhitespace(null)         = nullStringUtils.deleteWhitespace("")           = ""StringUtils.deleteWhitespace("abc")        = "abc"StringUtils.deleteWhitespace("   ab  c  ") = "abc"
public static String removeStart(String str,String remove)
删除以特定字符串开头的字符串,如果没有的话,就不删除。 
StringUtils.removeStart(null, *)      = nullStringUtils.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"
public static String rightPad(String str,int size,char padChar)
生成订单号,的时候还是很实用的。右边自动补齐。 
StringUtils.rightPad(null, *, *)     = nullStringUtils.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"
public static String leftPad(String str,int size,char padChar)
左边自动补齐 
StringUtils.leftPad(null, *, *)     = nullStringUtils.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"
public static String center(String str,int size)
将字符在某特定长度下,句子 
StringUtils.center(null, *)   = nullStringUtils.center("", 4)     = "    "StringUtils.center("ab", -1)  = "ab"StringUtils.center("ab", 4)   = " ab "StringUtils.center("abcd", 2) = "abcd"StringUtils.center("a", 4)    = " a  "
public static String capitalize(String str)
首字母大写
 StringUtils.capitalize(null)  = nullStringUtils.capitalize("")    = ""StringUtils.capitalize("cat") = "Cat"StringUtils.capitalize("cAt") = "CAt"
public static String swapCase(String str)
反向大小写 
StringUtils.swapCase(null)                 = nullStringUtils.swapCase("")                   = ""StringUtils.swapCase("The dog has a BONE") = "tHE DOG HAS A bone"
public static boolean isAlpha(CharSequence cs)
判断字符串是否由字母组成 
StringUtils.isAlpha(null)   = falseStringUtils.isAlpha("")     = falseStringUtils.isAlpha("  ")   = falseStringUtils.isAlpha("abc")  = trueStringUtils.isAlpha("ab2c") = falseStringUtils.isAlpha("ab-c") = false
public static String defaultString(String str,String defaultStr)
默认字符串,相当于三目运算,前面弱为空,则返回后面一个参数 
StringUtils.defaultString(null, "NULL")  = "NULL"StringUtils.defaultString("", "NULL")    = ""StringUtils.defaultString("bat", "NULL") = "bat"
public static String reverse(String str)
字符串翻转
 StringUtils.reverse(null)  = nullStringUtils.reverse("")    = ""StringUtils.reverse("bat") = "tab"
public static String abbreviate(String str,int maxWidth)
缩略字符串,
省略号要占三位。maxWith小于3位会报错。
 StringUtils.abbreviate(null, *)      = nullStringUtils.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, *, *)                = nullStringUtils.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)        = IllegalArgumentExceptionStringUtils.abbreviate("abcdefghij", 5, 6)        = IllegalArgumentException
public static String wrap(String str,char wrapWith)
包装,用后面的字符串对前面的字符串进行包装 
StringUtils.wrap(null, *)        = nullStringUtils.wrap("", *)          = ""StringUtils.wrap("ab", '\0')     = "ab"StringUtils.wrap("ab", 'x')      = "xabx"StringUtils.wrap("ab", '\'')     = "'ab'"StringUtils.wrap("\"ab\"", '\"') = "\"\"ab\"\""
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐