apache commons StringUtils介紹

jopen 12年前發布 | 6K 次閱讀 Spring Framework

apache commons StringUtils介紹

org.apache.commons.lang.StringUtils


StringUtils是apache commons lang庫(http://commons.apache.org/lang)旗下的一個工具類,提供了很多有用的處理字符串的方法,本文不打算把所有的方法都介紹一遍,我會介紹一些精選的常用的給大家。


目前StringUtils有兩個版本可用,分別是較新的org.apache.commons.lang3.StringUtils和較老的org.apache.commons.lang.StringUtils,他們有比較大的區別,前者需要JAVA 5,我想這個應該是我們希望使用的。


1)public static boolean equals(CharSequence str1,CharSequence str2)

我們就先從最簡單的方法equals開始,和你想的一樣,他需要兩個字符串參數,當相同的時候返回true,否則返回false。

但是java.lang.String已經有現成的比較完美的equals方法了,為何我們還需要一個第三方的實現呢?

這個問題很好,讓我們來看看下面這些代碼,看看有何問題?

Java代碼 
</div>

  1. public void doStuffWithString(String stringParam) {    
  2. if(stringParam.equals("MyStringValue")) {    
  3. // do stuff }    
  4. }   
  5. </ol> </div>



    這個可能有NullPointerException出現,那么有幾個辦法處理:

    Java代碼 
    </div>

    1. public void safeDoStuffWithString1(String stringParam) {    
    2. if(stringParam != null &amp;&amp;    
    3. stringParam.equals("MyStringValue")) {    
    4. // do stuff    
    5. }    
    6. }     
    7. public void safeDoStuffWithString2(String stringParm) {    
    8. if("MyStringValue".equals(stringParam))    
    9. {    
    10. // do stuff    
    11. }    
    12. }   
    13. </ol> </div>



      我本人不喜歡上面的兩個方法,第一個看起來太臃腫,第二個看起來像錯誤的。這里我們就可以用一些StringUtils類了,這個類提供的equals方法是空指針安全的,不用擔心傳遞給他的是什么參數,他不會拋出空指針異常,這樣寫:

      Java代碼 
      </div>

      1. public void safeDoStuffWithString3(String stringParam) {   
      2. if(StringUtils.equals(stringParam,"MyStringValue))    
      3. {    
      4. // do stuff    
      5. }    
      6. }   
      7. </ol> </div>




        這個是我個人的喜好,但是這個確實看起來比較簡單易讀。前面的兩個方法雖然么有什么問題,但是我想StringUtils.equals還是值得考慮的。

        2)isEmpty,isNotEmpty,isBlank,isNotBlank

        和前面一樣,這些方法相對于jdk提供的isEmpty方法來說,多了一個“空指針安全”,即不用考慮傳遞參數的空值問題,讓我們來看一個例子:

        Java代碼 
        </div>

        1. if(myString != null && !myString.isEmpty()) {    
        2. // 有點臃腫是把?   
        3. // Do stuff with myString    
        4. }    
        5.     
        6. if(StringUtils.isNotEmpty(myString)) { // 好多了吧    
        7. // Do stuff with myString    
        8. }   
        9. </ol> </div>