字符串處理高效工具(Java)

在處理string的時候,你可能會遇到null引起的NPE煩惱,本文介紹一些可以安全的處理null問題的工具類(容錯性更好),這些方法經過了大量的實踐證明,不用自己去重複的創造輪子。
荀子說,人要“善假於物”,人要善於藉助工具。正是人的實踐和主觀能動性,創造了提高效率的工具,這也是人和動物的區別。在字符串處理中,可以使用apache的commons-lang3和guava的相關字符串處理工具。對應的maven如下:(均爲發文時的最新版本)。

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.5</version>
</dependency>

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>20.0</version>
</dependency>

其中:commons-lang3的工具可以關注:StringUtils和WordUtils,下文會重點列出StringUtils的方法分類。
guava可以關注:Strings(方法較少)、Joiner和Splitter三個類,Joiner和Splitter的實例可以參考:http://blog.csdn.net/qunzer/article/details/25376633http://blog.csdn.net/qunzer/article/details/25368085

commons-lang3中的StringUtils的方法特別多,基本上包括了大部分常用的字符串處理方法;雖然方法較多,但是方法體註釋中都有使用說明,下面主要對該類方法進行了分類。(標黑的方法可能會經常用到)

1.判斷是否爲Empty和Blank的
isEmpty、isNotEmpty、isAnyEmpty、isNoneEmpty
isBlank、isNotBlank、isAnyBlank、isNoneBlank

2.trim
trim、trimToNull、trimToEmpty、truncate
strip、stripToNull、stripToEmpty、stripStart、stripEnd、stripAll、stripAccents

3.類似比較的功能
equals、equalsIgnoreCase
compare、compareIgnoreCase
equalsAny、equalsAnyIgnoreCase
difference、indexOfDifference
getCommonPrefix
getLevenshteinDistance、getJaroWinklerDistance、getFuzzyDistance
matches
startsWithIgnoreCase、startsWith、startsWithAny
endsWith、endsWithAny

4.indexOf
indexOfAny、indexOf、indexOfAnyBut、indexOfAnyBut、ordinalIndexOf
indexOfIgnoreCase、lastIndexOf、lastOrdinalIndexOf、lastIndexOfIgnoreCase

5.contains:
containsIgnoreCase、containsWhitespace、containsAny、containsOnly、containsNone

6.獲取部分字符串
left、right、mid
substring、substringBefore、substringAfter、substringBeforeLast、substringAfterLast、substringBetween、substringsBetween

7.拆分和組合,這個可以使用guava的功能(Joiner,splitter)
split
splitByWholeSeparator
splitByWholeSeparatorPreserveAllTokens
splitByWholeSeparatorWorker
splitPreserveAllTokens
splitWorker
splitPreserveAllTokens
splitByCharacterType
splitByCharacterTypeCamelCase
join
joinWith

8.移除
deleteWhitespace
removeStart、removeStartIgnoreCase、removeEnd、removeEndIgnoreCase、remove、removeIgnoreCase、removeAll、removePattern、removeFirst

9.替換
replaceOnce、replaceOnceIgnoreCase、replacePattern、replaceAll、replaceFirst、replace、replaceIgnoreCase、replaceEach、replaceEachRepeatedly、replaceChars
overlay

10.去除末尾的換行符
chomp、chop

11.編輯字符串
repeat、rightPad、leftPad、center
upperCase、lowerCase、capitalize、uncapitalize、swapCase
rotate、reverse、reverseDelimited
abbreviate、abbreviateMiddle
appendIfMissing、appendIfMissingIgnoreCase
prependIfMissing
wrap、wrapIfMissing

12.判斷類型
isAlpha
isAlphaSpace
isAlphanumeric
isAlphanumericSpace
isAsciiPrintable
isNumeric
isNumericSpace
isWhitespace
isAllLowerCase
isAllUpperCase

13.對爲null,empty的進行判斷,並且最後兩個能夠設置默認值
defaultString
defaultIfBlank
defaultIfEmpty

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章