依赖包:

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.11</version>
</dependency>

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. python类装饰器详解-Python类装饰器实现方法详解

    本文实例讲述了Python类装饰器.分享给大家供大家参考,具体如下: 编写类装饰器 类装饰器类似于函数装饰器的概念,但它应用于类,它们可以用于管理类自身,或者用来拦截实例创建调用以管理实例. 单体类 ...

  2. php生成vcf,[宜配屋]听图阁 - PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】 原创...

    本文实例讲述了PHP实现生成vcf vcard文件功能类定义与使用方法.分享给大家供大家参考,具体如下: 前面介绍了php读取vcf文件的方法,这里再来研究一下vcf文件的生成方法. VCF格式是Wi ...

  3. Object类下面的一些方法详解

    1.Object() ​ Object类的构造方法. 2.registerNatives() ​ 为了使JVM发现本机功能,他们被一定的方式命名.例如,对于java.lang.Object.regis ...

  4. String类中的intern()方法详解

    来源地址:https://blog.csdn.net/soonfly/article/details/70147205 在翻<深入理解Java虚拟机>的书时,又看到了2-7的 String ...

  5. 京东API商品数据获取方法详解

    获得JD商品详情 API 返回值说明 item_get - 获得JD商品详情 获取API工具 响应参数 名称 类型 是否隐私 示例值 描述 items items[] 获得JD商品详情 num_iid ...

  6. api 定位 微信小程序 精度_微信小程序3种位置API的使用方法详解

    获取位置 获取当前的地理位置.速度.当用户离开小程序后,此接口无法调用:当用户点击"显示在聊天顶部"时,此接口可继续调用. wx.getLocation(object) 获取位置 ...

  7. 序列内置方法详解(string/list/tuple)

    一.常用方法集合 1.1.string,字符串常用方法 以下举例是python2.7测试: 函数名称 作用 举例 str.capitalize() 字符串第一个字符如果是字母,则把字母替换为大写字母. ...

  8. object类中的equals与自定义equals方法详解

    object类中的equals与自定义equal方法详解 1.this怎么理解?this == obj表示什么? this就是当前你new出来的对象,这里指谁调用equal方法this指的就是谁,ob ...

  9. Python的Django框架中forms表单类的使用方法详解2

    用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...

最新文章

  1. Goldman Sachs 2020校招 Engineer岗
  2. 1075 PAT Judge (25 分)【难度: 一般 / 知识点: 多关键字排序】
  3. 上海大学计算机工程与科学学院官网,上海大学计算机工程与科学学院.PDF
  4. python安装第三方包总是超时_(python pip安装第三方库超时问题(raise ReadTimeoutErrorself._pool, None, 'Read timed out.')...
  5. 使用VS2013编译Lua5.3.2
  6. 腾讯正式宣布成立技术委员会,要对组织架构下狠手
  7. 摇杆控制方向原理_图文全面讲解多种方向控制阀的原理和区别....
  8. 为什么一个字节定义成8位?
  9. 计算机重启是什么原因,电脑自动重启是什么原因
  10. 单片机ADC采样算法----中位值滤波法
  11. python怎么读发音百度翻译-用python实现百度翻译的示例代码
  12. 如何使用python批量压缩图片_利用Python 批量压缩图片
  13. IoC框架(依赖注入 DI)
  14. android解压sd卡中的压缩文件
  15. CxImage图像库的使用
  16. 编译OpenJDK8:configure: Could not compile and link with freetype. This might be a 32/64-bit mismatch.
  17. 基于springboot的房屋租赁系统
  18. 冒险教主-超详细绘制教程
  19. 打造前端MAC工作站(五)让我们熟悉一下 MAC 命令行吧!
  20. 没有项目管理经验,可以参加PMP考试?

热门文章

  1. linux real时间,Linux Realtime
  2. FTP可以建立连接不能传输文件(FTP主被动模式)
  3. [Flask_sqlalchemy] KeyError: 检索时对ChoiceType的类型限制
  4. 软件工程第六版全书总结笔记
  5. 英语感想——我们是幸运的
  6. 双11,为什么说是一场由中国人忽悠中国人的购物狂欢节?
  7. 多媒体播放声音多路输出
  8. ssm+jsp计算机毕业设计固定资产管理系统f1e21(程序+lw+源码+远程部署).
  9. 采用for循环结构遍历系列(squence)
  10. linux在终端打开dbi,Linux下安装DBI和DBD