StringUtils類方法歸納


StringUtils方法概覽

  • IsEmpty/IsBlank - checks if a String contains text
  • IsEmpty/IsBlank – 檢查字符串是否有內容。
  • Trim/Strip - removes leading and trailing whitespace
  • Trim/Strip – 刪除字符串開始和結尾的空白符。
  • Equals - compares two strings null-safe
  • Equals – 比較兩個字符串null安全。
  • IndexOf/LastIndexOf/Contains - null-safe index-of checks
  • IndexOf/LastIndexOf/Contains – null安全的索引檢查。
  • IndexOfAny/LastIndexOfAny/IndexOfAnyBut/LastIndexOfAnyBut - index-of any of a set of Strings
  • IndexOfAny/LastIndexOfAny/IndexOfAnyBut/LastIndexOfAnyBut – 字符串集合索引檢查。
  • ContainsOnly/ContainsNone - does String contains only/none of these characters
  • ContainsOnly/ContainsNone – 字符在字符串中出現一次或一次也沒有出現。
  • Substring/Left/Right/Mid - null-safe substring extractions
  • Substring/Left/Right/Mid – null安全子串的提取。
  • SubstringBefore/SubstringAfter/SubstringBetween - substring extraction relative to other strings
  • SubstringBefore/SubstringAfter/SubstringBetween – 子串提取依賴其它字符串。
  • Split/Join - splits a String into an array of substrings and vice versa
  • Split/Join – 字符串拆分為子串的字符串數組,反之亦然。
  • Remove/Delete - removes part of a String
  • Remove/Delete – 刪除部分字符串。
  • Replace/Overlay - Searches a String and replaces one String with another
  • Replace/Overlay – 替換字符串的部分字符。
  • Chomp/Chop - removes the last part of a String
  • Chomp/Chop – 刪除字符串最后的字符。
  • LeftPad/RightPad/Center/Repeat - pads a String
  • LeftPad/RightPad/Center/Repeat – 補字符串。
  • UpperCase/LowerCase/SwapCase/Capitalize/Uncapitalize - changes the case of a String
  • UpperCase/LowerCase/SwapCase/Capitalize/Uncapitalize – 改變字符串的大小寫。
  • CountMatches - counts the number of occurrences of one String in another
  • CountMatches – 計算一個字符或字符串在另外一個字符串出現的次數。
  • IsAlpha/IsNumeric/IsWhitespace/IsAsciiPrintable - checks the characters in a String
  • IsAlpha/IsNumeric/IsWhitespace/IsAsciiPrintable – 判斷字符是否在字符串中。
  • DefaultString - protects against a null input String
  • DefaultString –null安全,null轉換為字符串。
  • Reverse/ReverseDelimited - reverses a String
  • Reverse/ReverseDelimited – 反轉字符串。
  • Abbreviate - abbreviates a string using ellipsis
  • Abbreviate – 縮寫字符串用省略符。
  • Difference - compares two Strings and reports on their differences
  • Difference – 比較兩個字符串並且返回不同。
  • LevensteinDistance - the number of changes needed to change one String into another
  • LevensteinDistance – 一個字符串改變為另一個字符串需要改變的數量。

判空函數

  1. StringUtils.isEmpty(String str)
  2. StringUtils.isNotEmpty(String str)
  3. StringUtils.isBlank(String str)
  4. StringUtils.isNotBlank(String str)
  5. StringUtils.isWhitespace(CharSequence cs)
  • isWhitespace判斷空白
 StringUtils.isWhitespace(null)   = false
 StringUtils.isWhitespace("")     = true
 StringUtils.isWhitespace("  ")   = true
 StringUtils.isWhitespace("abc")  = false
 StringUtils.isWhitespace("ab2c") = false
 StringUtils.isWhitespace("ab-c") = false
  • isBlank和isEmpty的區別(isNotBlank = !isBlank  Empty同理)
    public static boolean isBlank(String str) {
        int strLen;
        if (str == null || (strLen = str.length()) == 0) {
            return true;
        }
        for (int i = 0; i < strLen; i++) {
            if ((Character.isWhitespace(str.charAt(i)) == false)) {
                return false;
            }
        }
        return true;
    }

 

 StringUtils.isBlank(null)      = true
 StringUtils.isBlank("")        = true
 StringUtils.isBlank(" ")       = true
 StringUtils.isBlank("bob")     = false
 StringUtils.isBlank("  bob  ") = false

 StringUtils.isEmpty(null)      = true
 StringUtils.isEmpty("")        = true
 StringUtils.isEmpty(" ")       = false
 StringUtils.isEmpty("bob")     = false
 StringUtils.isEmpty("  bob  ") = false

刪除函數

  1. StringUtils.remove(String str, char remove)
  2. StringUtils.remove(String str, String remove)
  3. StringUtils.removeEnd(String str, String remove)
  4. StringUtils.removeEndIgnoreCase(String str, String remove)
  5. StringUtils.removeStart(String str, String remove)
  6. StringUtils.removeStartIgnoreCase(String str, String remove)
  7. StringUtils.deleteWhitespace(String str)
  • 例子
//刪除字符
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"

 替換函數

  1. replace(String text, String searchString, String replacement)
  2. replace(String text, String searchString, String replacement, int max)
  3. replaceChars(String str, char searchChar, char replaceChar)
  4. replaceChars(String str, String searchChars, String replaceChars)
  5. replaceEach(String text, String[] searchList, String[] replacementList)
  6. replaceEachRepeatedly(String text, String[] searchList, String[] replacementList)
  7. replaceOnce(String text, String searchString, String replacement)
  8. overlay(String str,String overlay,int start,int end)
  • 例子
StringUtils.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異常
StringUtils.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"

//replaceOnce只替換一次
StringUtils.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"

StringUtils.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"

 分隔合並函數

  1. split(String str)
  2. split(String str, char separatorChar)
  3. split(String str, String separatorChars)
  4. split(String str, String separatorChars, int max)
  5. splitByCharacterType(String str)
  6. splitByCharacterTypeCamelCase(String str)
  7. splitByWholeSeparator(String str, String separator)
  8. splitByWholeSeparator(String str, String separator, int max)
  9. splitByWholeSeparatorPreserveAllTokens(String str, String separator)
  10. splitByWholeSeparatorPreserveAllTokens(String str, String separator, int max)
  11. splitPreserveAllTokens(String str)
  12. splitPreserveAllTokens(String str, char separatorChar)
  13. splitPreserveAllTokens(String str, String separatorChars)
  14. splitPreserveAllTokens(String str, String separatorChars, int max)
//用空白符做空格
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"]
  1. join(byte[] array,char separator)
  2. join(Object[] array,char separator)等方法
  3. join(Object[] array,char separator,int startIndex,int endIndex)
//只有一個參數的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"

 截取函數

  1. substring(String str,int start)
  2. substringAfter(String str,String separator)
  3. substringBeforeLast(String str,String separator)
  4. substringAfterLast(String str,String separator)
  5. substringBetween(String str,String tag)
StringUtils.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. difference(String str1,String str2)
//在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"

 刪除空白函數

  1. trim(String str)
  2. trimToEmpty(String str)
  3. trimToNull(String str)
  4. deleteWhitespace(String str)
 StringUtils.trim(null)          = null
 StringUtils.trim("")            = ""
 StringUtils.trim("     ")       = ""
 StringUtils.trim("abc")         = "abc"
 StringUtils.trim("    abc    ") = "abc"

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

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

 

判斷是否相等函數

  1. equals(CharSequence cs1,CharSequence cs2)
  2. equalsIgnoreCase(CharSequence str1, CharSequence str2)
StringUtils.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

 是否包含函數

  • 關鍵字 contains
 StringUtils.contains(null, *)    = false
 StringUtils.contains("", *)      = false
 StringUtils.contains("abc", 'a') = true
 StringUtils.contains("abc", 'z') = false

 StringUtils.contains(null, *) = false
 StringUtils.contains(*, null) = false
 StringUtils.contains("", "") = true
 StringUtils.contains("abc", "") = true
 StringUtils.contains("abc", "a") = true
 StringUtils.contains("abc", "z") = false
 StringUtils.contains("abc", "A") = true
 StringUtils.contains("abc", "Z") = false

 StringUtils.containsNone(null, *)       = true
 StringUtils.containsNone(*, null)       = true
 StringUtils.containsNone("", *)         = true
 StringUtils.containsNone("ab", '')      = true
 StringUtils.containsNone("abab", 'xyz') = true
 StringUtils.containsNone("ab1", 'xyz')  = true
 StringUtils.containsNone("abz", 'xyz')  = false

 StringUtils.containsAny(null, *)            = false
 StringUtils.containsAny("", *)              = false
 StringUtils.containsAny(*, null)            = false
 StringUtils.containsAny(*, "")              = false
 StringUtils.containsAny("zzabyycdxx", "za") = true
 StringUtils.containsAny("zzabyycdxx", "by") = true
 StringUtils.containsAny("aba","z")          = false

 索引下標函數

  • 關鍵字 indexOf
//返回第二個參數開始出現的索引值
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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM