stringutils 常用方法(CommonLang3中的StringUtils最全解析)
stringutils 常用方法(CommonLang3中的StringUtils最全解析)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)在写一些判断条件的时候,这个方法还是很实用的。StringUtils.isNotEmpty(
平时开发中常用的StringUtils方法汇总:
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 *) = -1 StringUtils.lastIndexOf("" *) = -1 StringUtils.lastIndexOf("aabaabaa" 'a') = 7 StringUtils.lastIndexOf("aabaabaa" 'b') = 5 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 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 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 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)
这三个方法类似都是截取字符串
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"] 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" 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" public static String deleteWhitespace(String str)
删除空格
StringUtils.deleteWhitespace(null) = null StringUtils.deleteWhitespace("") = "" StringUtils.deleteWhitespace("abc") = "abc" StringUtils.deleteWhitespace(" ab c ") = "abc" 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" 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" 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" 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 " public static String capitalize(String str)
首字母大写
StringUtils.capitalize(null) = null StringUtils.capitalize("") = "" StringUtils.capitalize("cat") = "Cat" StringUtils.capitalize("cAt") = "CAt" public static String swapCase(String str)
反向大小写
StringUtils.swapCase(null) = null StringUtils.swapCase("") = "" StringUtils.swapCase("The dog has a BONE") = "tHE DOG HAS A bone" 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 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) = null StringUtils.reverse("") = "" StringUtils.reverse("bat") = "tab" 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 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\"\""