1. 程式人生 > >StringUtils類API及使用方法詳解

StringUtils類API及使用方法詳解

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
  • isBlank和isEmpty區別:
      System.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
      StringUtils.isAnyBlank("", "bar","foo");       = true
      //注意這兩個區別
      StringUtils.isAnyEmpty(" ", "bar")       = false
      StringUtils.isAnyEmpty(" "
    , "bar") = true
  • isNoneBlank = !isAnyBlank;isNoneEmpty同理
      public static boolean isNoneBlank(CharSequence... css) {
          return !isAnyBlank(css);
      }
  • isWhitespace判斷空白
      StringUtils.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大小寫互轉;
      StringUtils.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是否全部小寫
       StringUtils.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)

  • 具體例子
       //刪除字元
       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)

  • 例子
      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"

史上最詳盡的Land3 StringUtils類使用方法大全1

replaceChars原理圖
  • 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"

反轉函式

reverse(String str)

reverseDelimited(String str, char separatorChar)

例:

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

例:

    //用空白符做空格
    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", "-!-") = [
            
           

相關推薦

StringUtilsAPI使用方法

StringUtils方法概覽 判空函式 1)StringUtils.isEmpty(String str) 2)StringUtils.isNotEmpty(String str) 3)StringUtils.isBlank(String str) 4)String

StringUtilsAPI使用方法(轉載)

StringUtils方法概覽判空函式1)StringUtils.isEmpty(String str)2)StringUtils.isNotEmpty(String str)3)StringUtils.isBlank(String str)4)StringUt

自動載入方法

在瞭解這個函式之前先來看另一個函式:__autoload。 一、__autoload 這是一個自動載入函式,在PHP5中,當我們例項化一個未定義的類時,就會觸發此函式。看下面例子: printit.class.php <?php class PRINTIT { function do

“全棧2019”Java第五十九章:抽象與抽象方法

難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第五十九章:抽象類與抽象方法詳解 下一章 “全棧2019”Java第六十章:如何定義介面

java String 的equals方法

equals 方法的程式碼如下所示: public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String)

Graphicsg.drawRect()方法

import javax.swing.*; import java.awt.*; public class Main { public static void main(String[] args) { JFrame frame=new JFrame

ListView的屬性方法

近期在重新學習Android控制元件知識,目前進行到ListView,感覺這是一塊尤其難啃的硬骨頭:最為常用、用法較複雜、涉及的其他Android知識也較多。因此決定系統地好好複習一遍ListView。其中涉及到的其他知識點將在後期以連結的形式不斷進行更新。 本文僅介紹L

TimerTask和Timer的cancel()方法

無論是TimerTask類還是Timer類,其cancel()方法都是為了清除任務佇列中的任務。雖然都是清除任務佇列中的任務,卻有一些不同:TimerTask類中的cancel()方法側重的是將自身從任務佇列中清除,其他任務不受影響,而Timer類中的cance

String構造和方法

1. 構造string string實際上是模板具體化basic_string<string>的一個typedef。它有如下的建構函式。 string類的建構函式 string(cons

Java之陣列查詢Arrays的binarySearch()方法

Arrays類的binarySearch()方法,可以使用二分搜尋法來搜尋指定的陣列,以獲得指定物件。該方法返回要搜尋元素的索引值。binarySearch()方法提供多種過載形式,用於滿足各種型別陣

c++string的常用方法

     大部分程式都要頻繁地對字串進行操作,而c++的string類對字串進行了很強大的封裝,方便我們使用,但我常常忘了一些函式的用法,故查詢文章,轉載過來,供查詢用。 要想使用標準C++中string類,必須要包含#include <string>// 注意

Java工具StringUtils中trim、trimToEmpty、trimToNull方法

1. trim方法原始碼詳解 public static String trim(String str) { return str == null ? null : str.trim(); }1234原始碼解析:輸入引數為null時返回nul

(十二)Java工具StringUtils中trim、trimToEmpty、trimToNull方法

1. trim方法原始碼詳解 public static String trim(String str) { return str == null ? null : str.trim(); } 原始碼解析:輸入引數為n

Arrays 的 binarySearch() 數組查詢方法

strong object tro search mage bject 技術分享 eight 獲得 Arrays類的binarySearch()方法,可以使用二分搜索法來搜索指定的數組,以獲得指定對象。該方法返回要搜索元素的索引值。binarySearch()方法提供多種重

systemd配置文件管理方法

systemd一、systemd文件夾配置文件夾: systemd 配置文件存在於以下三個文件夾中: ①/etc/systemd/system 存放系統啟動的默認級別及啟動的unit的軟連接,優先級最高。②/run/systemd/system,系統執行過程中產生的服務腳本,優先級次

使用Java的Graphics進行繪圖的方法

範圍 date cnblogs 兩種 size set orm 畫橢圓 true Graphics類提供基本繪圖方法,Graphics2D類提供更強大的繪圖能力。本節講解Graphics類,下節講解Graphics2D。 Graphics類提供基本的幾何圖形繪制方法,主要有

BeautifulSoup 使用select方法(通過標簽名,名, id,組合,屬性查找)

chrome red 例如 ttl app user encode and 定位 import requestsfrom bs4 import BeautifulSoupblslib="html5lib"user_agent="Mozilla/5.0 (Macintosh;

IP地址的分類範圍:A、B、C、D、E五是如何劃分的?

網絡地址分類 IP地址分類 IP地址劃分 IP地址類型 IP地址範圍 IP地址的分類及範圍詳解:A、B、C、D、E五類是如何劃分的?最近在考證,有一項內容是網絡IP地址劃分的題目,一直從事IT的猛然發現回答這個問題時產生了懷疑,於是習慣百度了一下,發現網上廣泛流傳的有關IP地址劃分的文章居

2 、實例、屬性、方法

obj tps 圖片 AD lex 間接 年齡 AS 其它 類的語法 上面的代碼其實有問題,屬性名字和年齡都寫死了,想傳名字傳不進去。 1 class Person(object): 2   def __init__(self, name, age): 3     se

TestNG Assert方法

類方法 null cep 進行 ots ces 一個 遍歷數組 spa package com.testng.examples;import org.testng.Assert;import org.testng.annotations.Test;public class