StringUtils方法概览

判空函数

1)StringUtils.isEmpty(String str)

2)StringUtils.isNotEmpty(String str)

3)StringUtils.isBlank(String str)

4)StringUtils.isNotBlank(String str)

5)StringUtils.isAnyBlank(CharSequence… css)

6)StringUtils.isAnyEmpty(CharSequence… css)

7)StringUtils.isNoneBlank(CharSequence… css)

8)StringUtils.isNoneEmpty(CharSequence… css)

9)StringUtils.isWhitespace(CharSequence cs)

  • isNotEmpty = !isEmpty, isBlank同理;
  • 容易忽略的;
      StringUtils.isEmpty("")        = true.isEmpty("")        = true
  • isBlank和isEmpty区别:

    1. System.out.println(StringUtils.isBlank(" "));//true

    2. System.out.println(StringUtils.isBlank(" "));//true

    3. System.out.println(StringUtils.isBlank("\n\t"));//true

    4. //区别

    5. StringUtils.isEmpty(" ") = false

    .out.println(StringUtils.isBlank(" "));//true System.out.println(StringUtils.isBlank(" "));//true System.out.println(StringUtils.isBlank("\n\t"));//true //区别 StringUtils.isEmpty(" ") = false

  • isAnyBlank和isAnyEmpty是多维判空,存在一个blank或者empty既true
    1. StringUtils.isAnyBlank("", "bar","foo"); = true

    2. //注意这两个区别

    3. StringUtils.isAnyEmpty(" ", "bar") = false

    4. StringUtils.isAnyEmpty(" ", "bar") = true

    .isAnyBlank("", "bar","foo"); = true //注意这两个区别 StringUtils.isAnyEmpty(" ", "bar") = false StringUtils.isAnyEmpty(" ", "bar") = true

  • isNoneBlank = !isAnyBlank;isNoneEmpty同理
    1. public static boolean isNoneBlank(CharSequence... css) {

    2. return !isAnyBlank(css);

    3. }

    public static boolean isNoneBlank(CharSequence... css) { return !isAnyBlank(css); }

  • isWhitespace判断空白
    1. StringUtils.isWhitespace(null) = false

    2. StringUtils.isWhitespace("") = true

    3. StringUtils.isWhitespace(" ") = true

    .isWhitespace(null) = false StringUtils.isWhitespace("") = true StringUtils.isWhitespace(" ") = true

大小写函数

StringUtils.capitalize(String str)

StringUtils.uncapitalize(String str)

StringUtils.upperCase(String str)

StringUtils.upperCase(String str,Locale locale)

StringUtils.lowerCase(String str)

StringUtils.lowerCase(String str,Locale locale)

StringUtils.swapCase(String str)

StringUtils.isAllUpperCase(CharSequence cs)

StringUtils.isAllLowerCase(CharSequence cs)

注意点:

  • capitalize首字母大写,upperCase全部转化为大写,swapCase大小写互转;

    1. StringUtils.capitalize(null) = null

    2. StringUtils.capitalize("") = ""

    3. //首字母转为大写

    4. StringUtils.capitalize("cat") = "Cat"

    5. //全部转为大写

    6. StringUtils.upperCase("aBc") = "ABC"

    7. //大小写互转

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

    .capitalize(null) = null StringUtils.capitalize("") = "" //首字母转为大写 StringUtils.capitalize("cat") = "Cat" //全部转为大写 StringUtils.upperCase("aBc") = "ABC" //大小写互转 StringUtils.swapCase("The dog has a BONE") = "tHE DOG HAS A bone"

  • isAllUpperCase是否全部大写,isAllLowerCase是否全部小写
    1. StringUtils.isAllLowerCase(" ") = false

    2. StringUtils.isAllLowerCase("abc") = true

    3. StringUtils.isAllLowerCase("abC") = false

    4. StringUtils.isAllLowerCase("ab c") = false

    5. StringUtils.isAllLowerCase("ab1c") = false

    6. StringUtils.isAllLowerCase("ab/c") = false

    .isAllLowerCase(" ") = false StringUtils.isAllLowerCase("abc") = true StringUtils.isAllLowerCase("abC") = false StringUtils.isAllLowerCase("ab c") = false StringUtils.isAllLowerCase("ab1c") = false StringUtils.isAllLowerCase("ab/c") = false

删除函数

StringUtils.remove(String str, char remove)

StringUtils.remove(String str, String remove)

StringUtils.removeEnd(String str, String remove)

StringUtils.removeEndIgnoreCase(String str, String remove)

StringUtils.removePattern(String source, String regex)

StringUtils.removeStart(String str, String remove)

StringUtils.removeStartIgnoreCase(String str, String remove)

StringUtils.deleteWhitespace(String str)

  • 具体例子

    1. //删除字符

    2. StringUtils.remove("queued", 'u') = "qeed"

    3. //删除字符串

    4. StringUtils.remove("queued", "ue") = "qd"

    5. //删除结尾匹配的字符串

    6. StringUtils.removeEnd("www.domain.com", ".com") = "www.domain"

    7. //删除结尾匹配的字符串,找都不到返回原字符串

    8. StringUtils.removeEnd("www.domain.com", "domain") = "www.domain.com"

    9. //忽略大小写的

    10. StringUtils.removeEndIgnoreCase("www.domain.com", ".COM") = "www.domain")

    11. //删除所有空白(好用)

    12. StringUtils.deleteWhitespace("abc") = "abc"

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

    //删除字符 StringUtils.remove("queued", 'u') = "qeed" //删除字符串 StringUtils.remove("queued", "ue") = "qd" //删除结尾匹配的字符串 StringUtils.removeEnd("www.domain.com", ".com") = "www.domain" //删除结尾匹配的字符串,找都不到返回原字符串 StringUtils.removeEnd("www.domain.com", "domain") = "www.domain.com" //忽略大小写的 StringUtils.removeEndIgnoreCase("www.domain.com", ".COM") = "www.domain") //删除所有空白(好用) StringUtils.deleteWhitespace("abc") = "abc" StringUtils.deleteWhitespace(" ab c ") = "abc"

替换函数

replace(String text, String searchString, String replacement)

replace(String text, String searchString, String replacement, int max)

replaceChars(String str, char searchChar, char replaceChar)

replaceChars(String str, String searchChars, String replaceChars)

replaceEach(String text, String[] searchList, String[] replacementList)

replaceEachRepeatedly(String text, String[] searchList, String[] replacementList)

replaceOnce(String text, String searchString, String replacement)

replacePattern(String source, String regex, String replacement)

overlay(String str,String overlay,int start,int end)

  • 例子

    1. StringUtils.replace("aba", "a", "") = "b"

    2. StringUtils.replace("aba", "a", "z") = "zbz"

    3. //数字就是替换个数,0代表不替换,1代表从开始数起第一个,-1代表全部替换

    4. StringUtils.replace("abaa", "a", "", -1) = "b"

    5. StringUtils.replace("abaa", "a", "z", 0) = "abaa"

    6. StringUtils.replace("abaa", "a", "z", 1) = "zbaa"

    7. StringUtils.replace("abaa", "a", "z", 2) = "zbza"

    8. StringUtils.replace("abaa", "a", "z", -1) = "zbzz"

    .replace("aba", "a", "") = "b" StringUtils.replace("aba", "a", "z") = "zbz" //数字就是替换个数,0代表不替换,1代表从开始数起第一个,-1代表全部替换 StringUtils.replace("abaa", "a", "", -1) = "b" StringUtils.replace("abaa", "a", "z", 0) = "abaa" StringUtils.replace("abaa", "a", "z", 1) = "zbaa" StringUtils.replace("abaa", "a", "z", 2) = "zbza" StringUtils.replace("abaa", "a", "z", -1) = "zbzz"

  • replaceEach是replace的增强版,搜索列表和替换长度必须一致,否则报IllegalArgumentException异常:
    1. StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"}) = "wcte"

    2. StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}) = "dcte"

    3. StringUtils.replaceChars("dabcba", "bcd", "yzx") = "xayzya"

    4. StringUtils.replaceChars("abcba", "bc", "y") = "ayya"

    .replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"}) = "wcte" StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}) = "dcte" StringUtils.replaceChars("dabcba", "bcd", "yzx") = "xayzya" StringUtils.replaceChars("abcba", "bc", "y") = "ayya"

replaceChars原理图

  • replaceOnce只替换一次:

    1. StringUtils.replaceOnce("aba", "a", "") = "ba"

    2. StringUtils.replaceOnce("aba", "a", "z") = "zba"

    3. StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"}) = "wcte"

    4. //这是一个非常奇怪的函数,本来自己料想结果应该是“dcte”的,可是结果居然是tcte,而dcte再替换一次就是tcte了。

    5. StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}) = "tcte"

    .replaceOnce("aba", "a", "") = "ba" StringUtils.replaceOnce("aba", "a", "z") = "zba" StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"}) = "wcte" //这是一个非常奇怪的函数,本来自己料想结果应该是“dcte”的,可是结果居然是tcte,而dcte再替换一次就是tcte了。 StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}) = "tcte"

  1. StringUtils.overlay("abcdef", "zzzz", 2, 4) = "abzzzzef"

  2. StringUtils.overlay("abcdef", "zzzz", 4, 2) = "abzzzzef"

  3. StringUtils.overlay("abcdef", "zzzz", -1, 4) = "zzzzef"

  4. StringUtils.overlay("abcdef", "zzzz", 2, 8) = "abzzzz"

  5. StringUtils.overlay("abcdef", "zzzz", -2, -3) = "zzzzabcdef"

  6. StringUtils.overlay("abcdef", "zzzz", 8, 10) = "abcdefzzzz"

.overlay("abcdef", "zzzz", 2, 4) = "abzzzzef" StringUtils.overlay("abcdef", "zzzz", 4, 2) = "abzzzzef" StringUtils.overlay("abcdef", "zzzz", -1, 4) = "zzzzef" StringUtils.overlay("abcdef", "zzzz", 2, 8) = "abzzzz" StringUtils.overlay("abcdef", "zzzz", -2, -3) = "zzzzabcdef" StringUtils.overlay("abcdef", "zzzz", 8, 10) = "abcdefzzzz"

反转函数

reverse(String str)

reverseDelimited(String str, char separatorChar)

例:

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

  2. StringUtils.reverseDelimited("a.b.c", 'x') = "a.b.c"

  3. StringUtils.reverseDelimited("a.b.c", ".") = "c.b.a"

.reverse("bat") = "tab" StringUtils.reverseDelimited("a.b.c", 'x') = "a.b.c" StringUtils.reverseDelimited("a.b.c", ".") = "c.b.a"

分隔合并函数

split(String str)

split(String str, char separatorChar)

split(String str, String separatorChars)

split(String str, String separatorChars, int max)

splitByCharacterType(String str)

splitByCharacterTypeCamelCase(String str)

splitByWholeSeparator(String str, String separator)

splitByWholeSeparator(String str, String separator, int max)

splitByWholeSeparatorPreserveAllTokens(String str, String separator)

splitByWholeSeparatorPreserveAllTokens(String str, String separator, int max)

splitPreserveAllTokens(String str)

splitPreserveAllTokens(String str, char separatorChar)

splitPreserveAllTokens(String str, String separatorChars)

splitPreserveAllTokens(String str, String separatorChars, int max)

例:

  1. //用空白符做空格

  2. StringUtils.split("abc def") = ["abc", "def"]

  3. StringUtils.split("abc def") = ["abc", "def"]

  4. StringUtils.split("a..b.c", '.') = ["a", "b", "c"]

  5. //用字符分割

  6. StringUtils.split("a:b:c", '.') = ["a:b:c"]

  7. //0 或者负数代表没有限制

  8. StringUtils.split("ab:cd:ef", ":", 0) = ["ab", "cd", "ef"]

  9. //分割字符串 ,可以设定得到数组的长度,限定为2

  10. StringUtils.split("ab:cd:ef", ":", 2) = ["ab", "cd:ef"]

  11. //null也可以作为分隔

  12. StringUtils.splitByWholeSeparator("ab de fg", null) = ["ab", "de", "fg"]

  13. StringUtils.splitByWholeSeparator("ab de fg", null) = ["ab", "de", "fg"]

  14. StringUtils.splitByWholeSeparator("ab:cd:ef", ":") = ["ab", "cd", "ef"]

  15. StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-") = ["ab", "cd", "ef"]

  16. //带有限定长度的分隔

  17. StringUtils.splitByWholeSeparator("ab:cd:ef", ":", 2) = ["ab", "cd:ef"]

//用空白符做空格 StringUtils.split("abc def") = ["abc", "def"] StringUtils.split("abc def") = ["abc", "def"] StringUtils.split("a..b.c", '.') = ["a", "b", "c"] //用字符分割 StringUtils.split("a:b:c", '.') = ["a:b:c"] //0 或者负数代表没有限制 StringUtils.split("ab:cd:ef", ":", 0) = ["ab", "cd", "ef"] //分割字符串 ,可以设定得到数组的长度,限定为2 StringUtils.split("ab:cd:ef", ":", 2) = ["ab", "cd:ef"] //null也可以作为分隔 StringUtils.splitByWholeSeparator("ab de fg", null) = ["ab", "de", "fg"] StringUtils.splitByWholeSeparator("ab de fg", null) = ["ab", "de", "fg"] StringUtils.splitByWholeSeparator("ab:cd:ef", ":") = ["ab", "cd", "ef"] StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-") = ["ab", "cd", "ef"] //带有限定长度的分隔 StringUtils.splitByWholeSeparator("ab:cd:ef", ":", 2) = ["ab", "cd:ef"]

join(byte[] array,char separator)

join(Object[] array,char separator)等方法

join(Object[] array,char separator,int startIndex,int endIndex)

例:

  1. //只有一个参数的join,简单合并在一起

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

  3. StringUtils.join([null, "", "a"]) = "a"

  4. //null的话,就是把字符合并在一起

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

  6. //从index为0到3合并,注意是排除3的

  7. StringUtils.join([null, "", "a"], ',', 0, 3) = ",,a"

  8. StringUtils.join(["a", "b", "c"], "--", 0, 3) = "a--b--c"

  9. //从index为1到3合并,注意是排除3的

  10. StringUtils.join(["a", "b", "c"], "--", 1, 3) = "b--c"

  11. StringUtils.join(["a", "b", "c"], "--", 2, 3) = "c"

//只有一个参数的join,简单合并在一起 StringUtils.join(["a", "b", "c"]) = "abc" StringUtils.join([null, "", "a"]) = "a" //null的话,就是把字符合并在一起 StringUtils.join(["a", "b", "c"], null) = "abc" //从index为0到3合并,注意是排除3的 StringUtils.join([null, "", "a"], ',', 0, 3) = ",,a" StringUtils.join(["a", "b", "c"], "--", 0, 3) = "a--b--c" //从index为1到3合并,注意是排除3的 StringUtils.join(["a", "b", "c"], "--", 1, 3) = "b--c" StringUtils.join(["a", "b", "c"], "--", 2, 3) = "c"

截取函数

substring(String str,int start)

substringAfter(String str,String separator)

substringBeforeLast(String str,String separator)

substringAfterLast(String str,String separator)

substringBetween(String str,String tag)

  1. StringUtils.substring("abcdefg", 0) = "abcdefg"

  2. StringUtils.substring("abcdefg", 2) = "cdefg"

  3. StringUtils.substring("abcdefg", 4) = "efg"

  4. //start>0表示从左向右, start<0表示从右向左, start=0则从左第一位开始

  5. StringUtils.substring("abcdefg", -2) = "fg"

  6. StringUtils.substring("abcdefg", -4) = "defg"

  7. //从第二个参数字符串开始截取,排除第二个字符串

  8. StringUtils.substringAfter("abc", "a") = "bc"

  9. StringUtils.substringAfter("abcba", "b") = "cba"

  10. StringUtils.substringAfter("abc", "c") = ""

  11. //从最后一个字母出现开始截取

  12. StringUtils.substringBeforeLast("abcba", "b") = "abc"

  13. StringUtils.substringBeforeLast("abc", "c") = "ab"

  14. StringUtils.substringBeforeLast("a", "a") = ""

  15. StringUtils.substringBeforeLast("a", "z") = "a"

  16. StringUtils.substringAfterLast("abc", "a") = "bc"

  17. StringUtils.substringAfterLast("abcba", "b") = "a"

  18. StringUtils.substringAfterLast("abc", "c") = ""

  19. StringUtils.substringBetween("tagabctag", null) = null

  20. StringUtils.substringBetween("tagabctag", "") = ""

  21. StringUtils.substringBetween("tagabctag", "tag") = "abc"

.substring("abcdefg", 0) = "abcdefg" StringUtils.substring("abcdefg", 2) = "cdefg" StringUtils.substring("abcdefg", 4) = "efg" //start>0表示从左向右, start<0表示从右向左, start=0则从左第一位开始 StringUtils.substring("abcdefg", -2) = "fg" StringUtils.substring("abcdefg", -4) = "defg" //从第二个参数字符串开始截取,排除第二个字符串 StringUtils.substringAfter("abc", "a") = "bc" StringUtils.substringAfter("abcba", "b") = "cba" StringUtils.substringAfter("abc", "c") = "" //从最后一个字母出现开始截取 StringUtils.substringBeforeLast("abcba", "b") = "abc" StringUtils.substringBeforeLast("abc", "c") = "ab" StringUtils.substringBeforeLast("a", "a") = "" StringUtils.substringBeforeLast("a", "z") = "a" StringUtils.substringAfterLast("abc", "a") = "bc" StringUtils.substringAfterLast("abcba", "b") = "a" StringUtils.substringAfterLast("abc", "c") = "" StringUtils.substringBetween("tagabctag", null) = null StringUtils.substringBetween("tagabctag", "") = "" StringUtils.substringBetween("tagabctag", "tag") = "abc"

截取分析图:

截取分析图

  1. // start>0&&end>0从左开始(包括左)到右结束(不包括右),

  2. //start<0&&end<0从右开始(包括右),再向左数到end结束(包括end)

  3. StringUtils.substring("abc", -2, -1) = "b"

  4. //这个我至今还没弄明白

  5. StringUtils.substring("abc", -4, 2) = "ab"

// start>0&&end>0从左开始(包括左)到右结束(不包括右), //start<0&&end<0从右开始(包括右),再向左数到end结束(包括end) StringUtils.substring("abc", -2, -1) = "b" //这个我至今还没弄明白 StringUtils.substring("abc", -4, 2) = "ab"

相似度函数

一个字符串可以通过增加一个字符,删除一个字符,替换一个字符得到另外一个字符串,假设,我们把从字符串A转换成字符串B,前面3种操作所执行的最少次数称为AB相似度.

getLevenshteinDistance(CharSequence s, CharSequence t)
getLevenshteinDistance(CharSequence s, CharSequence t, int threshold)
StringUtils.getLevenshteinDistance(“elephant”, “hippo”) = 7
StringUtils.getLevenshteinDistance(“hippo”, “elephant”) = 7

例:
//b替换为d
abc adc 度为 1
//ababababa去掉a,末尾加b
ababababa babababab 度为 2
abcd acdb 度为2

差异函数

difference(String str1,String str2)

  1. //在str1中寻找str2中没有的的字符串,并返回

  2. StringUtils.difference("", "abc") = "abc"

  3. StringUtils.difference("abc", "") = ""

  4. StringUtils.difference("abc", "abc") = ""

  5. StringUtils.difference("abc", "ab") = ""

  6. StringUtils.difference("ab", "abxyz") = "xyz"

  7. StringUtils.difference("abcde", "abxyz") = "xyz"

  8. StringUtils.difference("abcde", "xyz") = "xyz"

//在str1中寻找str2中没有的的字符串,并返回 StringUtils.difference("", "abc") = "abc" StringUtils.difference("abc", "") = "" StringUtils.difference("abc", "abc") = "" StringUtils.difference("abc", "ab") = "" StringUtils.difference("ab", "abxyz") = "xyz" StringUtils.difference("abcde", "abxyz") = "xyz" StringUtils.difference("abcde", "xyz") = "xyz"

图片理解:

差异图片

缩短省略函数

abbreviate(String str, int maxWidth)

abbreviate(String str, int offset, int maxWidth)

abbreviateMiddle(String str, String middle, int length)

注意:

  • 字符串的长度小于或等于最大长度,返回该字符串。
  • 运算规律(substring(str, 0, max-3) + “…”)
  • 如果最大长度小于4,则抛出异常。
    1. //(substring(str, 0, 6-3) + "...")

    2. StringUtils.abbreviate("abcdefg", 6) = "abc..."

    3. StringUtils.abbreviate("abcdefg", 7) = "abcdefg"

    4. StringUtils.abbreviate("abcdefg", 8) = "abcdefg"

    5. StringUtils.abbreviate("abcdefg", 4) = "a..."

    6. StringUtils.abbreviate("abcdefg", 3) = IllegalArgumentException

    //(substring(str, 0, 6-3) + "...") 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

匹配计数函数

countMatches(CharSequence str,char ch)

  1. StringUtils.countMatches("abba", 0) = 0

  2. StringUtils.countMatches("abba", 'a') = 2

  3. StringUtils.countMatches("abba", 'b') = 2

  4. StringUtils.countMatches("abba", 'x') = 0

.countMatches("abba", 0) = 0 StringUtils.countMatches("abba", 'a') = 2 StringUtils.countMatches("abba", 'b') = 2 StringUtils.countMatches("abba", 'x') = 0

删除空白函数

trim(String str)

trimToEmpty(String str)

trimToNull(String str)

deleteWhitespace(String str)

  1. StringUtils.trim(" ") = ""

  2. StringUtils.trim("abc") = "abc"

  3. StringUtils.trim(" abc ") = "abc"

  4. //空的话,返回null

  5. StringUtils.trimToNull(" ") = null

  6. StringUtils.trimToNull("abc") = "abc"

  7. StringUtils.trimToNull(" abc ") = "abc"

  8. StringUtils.trimToEmpty(" ") = ""

  9. StringUtils.trimToEmpty("abc") = "abc"

  10. StringUtils.trimToEmpty(" abc ") = "abc"

.trim(" ") = "" StringUtils.trim("abc") = "abc" StringUtils.trim(" abc ") = "abc" //空的话,返回null StringUtils.trimToNull(" ") = null StringUtils.trimToNull("abc") = "abc" StringUtils.trimToNull(" abc ") = "abc" StringUtils.trimToEmpty(" ") = "" StringUtils.trimToEmpty("abc") = "abc" StringUtils.trimToEmpty(" abc ") = "abc"

-注意这两者的区别。

  1. StringUtils.deleteWhitespace("") = ""

  2. StringUtils.deleteWhitespace("abc") = "abc"

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

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

判断是否相等函数

equals(CharSequence cs1,CharSequence cs2)

equalsIgnoreCase(CharSequence str1, CharSequence str2)

  1. StringUtils.equals("abc", null) = false

  2. StringUtils.equals("abc", "abc") = true

  3. StringUtils.equals("abc", "ABC") = false

  4. //忽略大小写

  5. StringUtils.equalsIgnoreCase("abc", null) = false

  6. StringUtils.equalsIgnoreCase("abc", "abc") = true

  7. StringUtils.equalsIgnoreCase("abc", "ABC") = true

.equals("abc", null) = false StringUtils.equals("abc", "abc") = true StringUtils.equals("abc", "ABC") = false //忽略大小写 StringUtils.equalsIgnoreCase("abc", null) = false StringUtils.equalsIgnoreCase("abc", "abc") = true StringUtils.equalsIgnoreCase("abc", "ABC") = true

默认字符函数

defaultString(String str)

defaultString(String str,String defaultStr)

  1. StringUtils.defaultString("") = ""

  2. StringUtils.defaultString("bat") = "bat"

  3. StringUtils.defaultString("", "NULL") = ""

  4. //如果第一个参数为空,这返回第二个默认参数

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

.defaultString("") = "" StringUtils.defaultString("bat") = "bat" StringUtils.defaultString("", "NULL") = "" //如果第一个参数为空,这返回第二个默认参数 StringUtils.defaultString("bat", "NULL") = "bat"

填充居中函数

leftPad/rightPad(String str,int size)

leftPad(String str,int size,char padChar)

center(String str,int size)

center(String str,int size,char padChar)

repeat(char ch,int repeat)

repeat(String str,String separator,int repeat)

appendIfMissing(String str, CharSequence suffix, CharSequence… suffixes)

appendIfMissing(String str,CharSequence suffix,CharSequence… suffixes)

  1. StringUtils.leftPad("bat", 3) = "bat"

  2. //左填充,默认填充空

  3. StringUtils.leftPad("bat", 5) = " bat"

  4. StringUtils.leftPad("bat", 1) = "bat"

  5. StringUtils.leftPad("bat", -1) = "bat"

  6. //左填充,填充字符为z

  7. StringUtils.leftPad("bat", 3, 'z') = "bat"

  8. StringUtils.leftPad("bat", 5, 'z') = "zzbat"

  9. StringUtils.leftPad("bat", 1, 'z') = "bat"

  10. StringUtils.leftPad("bat", -1, 'z') = "bat"

  11. //居中

  12. StringUtils.center("ab", -1) = "ab"

  13. StringUtils.center("ab", 4) = " ab "

  14. StringUtils.center("abcd", 2) = "abcd"

  15. StringUtils.center("a", 4) = " a

  16. //居中,最后一个参数是填充字符或字符串

  17. StringUtils.center("abcd", 2, ' ') = "abcd"

  18. StringUtils.center("a", 4, ' ') = " a "

  19. StringUtils.center("a", 4, 'y') = "yayy"

  20. //重复字符串,第二个参数是重复次数

  21. StringUtils.repeat("a", 3) = "aaa"

  22. StringUtils.repeat("ab", 2) = "abab"

  23. StringUtils.repeat("a", -2) = ""

  24. //重复字符串,第二个参数是分割符,第三个参数是重复次数

  25. StringUtils.repeat("", "x", 3) = "xxx"

  26. StringUtils.repeat("?", ", ", 3) = "?, ?, ?"

  27. //

  28. StringUtils.appendIfMissing("abcxyz", "xyz", "mno") = "abcxyz"

  29. StringUtils.appendIfMissing("abcmno", "xyz", "mno") = "abcmno"

  30. StringUtils.appendIfMissing("abcXYZ", "xyz", "mno") = "abcXYZxyz"

  31. StringUtils.appendIfMissing("abcMNO", "xyz", "mno") = "abcMNOxyz"

.leftPad("bat", 3) = "bat" //左填充,默认填充空 StringUtils.leftPad("bat", 5) = " bat" StringUtils.leftPad("bat", 1) = "bat" StringUtils.leftPad("bat", -1) = "bat" //左填充,填充字符为z StringUtils.leftPad("bat", 3, 'z') = "bat" StringUtils.leftPad("bat", 5, 'z') = "zzbat" StringUtils.leftPad("bat", 1, 'z') = "bat" StringUtils.leftPad("bat", -1, 'z') = "bat" //居中 StringUtils.center("ab", -1) = "ab" StringUtils.center("ab", 4) = " ab " StringUtils.center("abcd", 2) = "abcd" StringUtils.center("a", 4) = " a //居中,最后一个参数是填充字符或字符串 StringUtils.center("abcd", 2, ' ') = "abcd" StringUtils.center("a", 4, ' ') = " a " StringUtils.center("a", 4, 'y') = "yayy" //重复字符串,第二个参数是重复次数 StringUtils.repeat("a", 3) = "aaa" StringUtils.repeat("ab", 2) = "abab" StringUtils.repeat("a", -2) = "" //重复字符串,第二个参数是分割符,第三个参数是重复次数 StringUtils.repeat("", "x", 3) = "xxx" StringUtils.repeat("?", ", ", 3) = "?, ?, ?" // StringUtils.appendIfMissing("abcxyz", "xyz", "mno") = "abcxyz" StringUtils.appendIfMissing("abcmno", "xyz", "mno") = "abcmno" StringUtils.appendIfMissing("abcXYZ", "xyz", "mno") = "abcXYZxyz" StringUtils.appendIfMissing("abcMNO", "xyz", "mno") = "abcMNOxyz"

是否包含函数

containsOnly(CharSequence cs,char… valid)

containsNone(CharSequence cs,char… searchChars)

startsWith(CharSequence str,CharSequence prefix)

startsWithIgnoreCase(CharSequence str,CharSequence prefix)

startsWithAny(CharSequence string,CharSequence… searchStrings)

  • 例子

    1. //判断字符串中所有字符,是否都是出自参数2中

    2. StringUtils.containsOnly("ab", "") = false

    3. StringUtils.containsOnly("abab", "abc") = true

    4. StringUtils.containsOnly("ab1", "abc") = false

    5. StringUtils.containsOnly("abz", "abc") = false

    6. //判断字符串中所有字符,都不在参数2中。

    7. StringUtils.containsNone("abab", 'xyz') = true

    8. StringUtils.containsNone("ab1", 'xyz') = true

    9. StringUtils.containsNone("abz", 'xyz') = false

    10. //判断字符串是否以第二个参数开始

    11. StringUtils.startsWith("abcdef", "abc") = true

    12. StringUtils.startsWith("ABCDEF", "abc") = false

    //判断字符串中所有字符,是否都是出自参数2中 StringUtils.containsOnly("ab", "") = false StringUtils.containsOnly("abab", "abc") = true StringUtils.containsOnly("ab1", "abc") = false StringUtils.containsOnly("abz", "abc") = false //判断字符串中所有字符,都不在参数2中。 StringUtils.containsNone("abab", 'xyz') = true StringUtils.containsNone("ab1", 'xyz') = true StringUtils.containsNone("abz", 'xyz') = false //判断字符串是否以第二个参数开始 StringUtils.startsWith("abcdef", "abc") = true StringUtils.startsWith("ABCDEF", "abc") = false

索引下标函数

indexOf(CharSequence seq,CharSequence searchSeq)

indexOf(CharSequence seq,CharSequence searchSeq,int startPos)

indexOfIgnoreCase/lastIndexOfIgnoreCase(CharSequence str,CharSequence searchStr)

lastIndexOf(CharSequence seq,int searchChar)

  1. //返回第二个参数开始出现的索引值

  2. StringUtils.indexOf("aabaabaa", "a") = 0

  3. StringUtils.indexOf("aabaabaa", "b") = 2

  4. StringUtils.indexOf("aabaabaa", "ab") = 1

  5. //从第三个参数索引开始找起,返回第二个参数开始出现的索引值

  6. StringUtils.indexOf("aabaabaa", "a", 0) = 0

  7. StringUtils.indexOf("aabaabaa", "b", 0) = 2

  8. StringUtils.indexOf("aabaabaa", "ab", 0) = 1

  9. StringUtils.indexOf("aabaabaa", "b", 3) = 5

  10. StringUtils.indexOf("aabaabaa", "b", 9) = -1

  11. //返回第二个参数出现的最后一个索引值

  12. StringUtils.lastIndexOf("aabaabaa", 'a') = 7

  13. StringUtils.lastIndexOf("aabaabaa", 'b') = 5

  14. StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A", 8) = 7

  15. StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 8) = 5

  16. StringUtils.lastIndexOfIgnoreCase("aabaabaa", "AB", 8) = 4

  17. StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 9) = 5

//返回第二个参数开始出现的索引值 StringUtils.indexOf("aabaabaa", "a") = 0 StringUtils.indexOf("aabaabaa", "b") = 2 StringUtils.indexOf("aabaabaa", "ab") = 1 //从第三个参数索引开始找起,返回第二个参数开始出现的索引值 StringUtils.indexOf("aabaabaa", "a", 0) = 0 StringUtils.indexOf("aabaabaa", "b", 0) = 2 StringUtils.indexOf("aabaabaa", "ab", 0) = 1 StringUtils.indexOf("aabaabaa", "b", 3) = 5 StringUtils.indexOf("aabaabaa", "b", 9) = -1 //返回第二个参数出现的最后一个索引值 StringUtils.lastIndexOf("aabaabaa", 'a') = 7 StringUtils.lastIndexOf("aabaabaa", 'b') = 5 StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A", 8) = 7 StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 8) = 5 StringUtils.lastIndexOfIgnoreCase("aabaabaa", "AB", 8) = 4 StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 9) = 5

StringUtils类API相关推荐

  1. StringUtils类API及使用方法详解

    依赖包: <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <dependen ...

  2. Java中字符串工具类继承org.apache.commons.lang3.StringUtils类代码

    场景 转换为字节数组:是否包含字符串:替换掉HTML标签方法:替换为手机识别的HTML,去掉样式及属性,保留回车: 缩略字符串(不区分中英文字符):转换为Double类型:转换为Float类型:转换为 ...

  3. StringUtils类中 isEmpty() 与 isBlank()的区别

    org.apache.commons.lang.StringUtils类提供了String的常用操作,最为常用的判空有如下两种isEmpty(String str)和isBlank(String st ...

  4. java反射api研究_深入研究Java 8中的可选类API

    java反射api研究 作为Java程序员,我们所有人都经历了以下情况:我们调用一个方法来获取某个值,然后代替直接对返回值调用某些方法,我们首先必须检查返回值是否不为null,然后在返回值. 这是像G ...

  5. 深入了解Java 8中的可选类API

    作为Java程序员,我们所有人都经历了以下情况:我们调用一个方法来获取某个值,然后代替直接对返回值调用某些方法,我们首先必须检查返回值不为null,然后在返回值. 这是像Guava这样的外部API试图 ...

  6. 生成特定于查询的类API摘要 (Generating Query-Specific Class API Summaries)

    链接:Generating query-specific class API summaries | Proceedings of the 2019 27th ACM Joint Meeting on ...

  7. 微信小程序运用云函数调用新闻类API

    微信小程序运用云函数调用新闻类API 微信小程序运用云函数调用新闻类API 新闻列表的编写 云函数的编写 JS方法 wxml页面编写 wxss样式 最终效果截图 微信小程序运用云函数调用新闻类API ...

  8. 微信小程序调用新闻类API

    做过微信小程序的伙伴都知道,当我们需要实现一个小程序中类似于新闻资讯的功能时,需要我们调用一个外部实时更新的新闻数据接口,从而将数据展示在我们的手机页面上.那么我们该如何实现这个功能呢?下面我们来实现 ...

  9. 快递物流查询接口查询类API接口介绍_快递鸟

    快递物流查询接口是指快递查询网对外开放的应用程序接口,开发人员能够通过调用该接口与快递查询网进行交互,并基于该接口开发自己的快递查询应用程序.目前比较常用的接口有快递鸟.菜鸟.快递100等. 1.应用 ...

最新文章

  1. python 中 (按位与) 和 | (按位或)
  2. 吴裕雄--天生自然 JAVASCRIPT开发学习:DOM EventListener
  3. poj1002(map的使用)
  4. B-Tree与B+Tree的区别
  5. 【编程】位运算(异或)
  6. 多线程java_Java多线程基础
  7. mysql 数据库文件导入和导出、远程上传和下载数据库
  8. linux下怎么查看程序异常,linux程序莫名异常怎么查
  9. 读书笔记:陈希孺:概率论与数理统计:2014.01.01
  10. 看不到日志_迷之 crontab 异常:不运行、不报错、无日志?
  11. 千月双端影视app源码 后端是Thinkphp
  12. 《世界因你不同》——大学生活:贫穷而快乐的日子
  13. 语义分割介绍和FCN
  14. LOJ10155 一本通1577 数字转换 题解
  15. [附源码]java毕业设计体检中心健康管理系统
  16. opensuse安装face_recognition全记录
  17. OpenMARI 开源指标体系和效能提升指南之GQM从入门到精通
  18. 如何干净地卸载VMware
  19. 使用安卓(华为)手机通过USB共享网络至Mac (M1pro)
  20. python爬虫chinaplay网页的前十个游戏 游戏名字、原价、现价、折扣、爬下来输出到excel文件

热门文章

  1. wxPython第四篇、Choice、MessageDialog控件实例讲解
  2. upupw切换php,UPUPW安装PHP扩展组件的相关说明
  3. upupw mysql崩溃_安装UPUPW后出现SQL语句运行错误解决办法
  4. 元宇宙龙头PlatoFarm,利益社区共享而不是中心化控盘
  5. 梁宁增长思维30讲笔记 - 1
  6. 深入浅出新一代云网络——VPC中的那些功能与基于OpenStack Neutron的实现(三)-路由与隧道...
  7. 大数据整体产业链结构
  8. [C] 在GCC中获取CPUID信息(兼容VC)
  9. halcon深度学习训练的时候报错:Training step failed.This might be caused by unsuitable hyperparameters(错误代码:7720)
  10. 智慧仓储管理系统,是否能解决购物狂欢节后新一轮爆仓危机?