字符串处理高效工具(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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值