apache-commons学习之StringUtils

今天开始学习commons类,从最常用的StringUtils类开始。StringUtils是String类的扩展类,它里面提供的所有方法均为静态方法,变量均为静态变量,可知调用这个类的方法并不需要实例化对象。这也是一般工具类的通用做法

介绍方法前先纠个错,看了不少博客里说StringUtils的isEmpty方法和isBlank方法的不同点是当参数为“”(空)时,isEmpty返回值为false,isBlank返回的是true,但其实他们返回的结果都是true,下面具体说一下方法

1. isEmpty()

StringUtils.isEmpty(null)      = true

StringUtils.isEmpty("")        = true

StringUtils.isEmpty(" ")       = false

StringUtils.isEmpty("bob")     = false

StringUtils.isEmpty("  bob  ") = false

由上面的结果可以看出 只有为null和“” 才是empty的。其他的都是非empty的。

类似的方法有:

a.isAnyEmpty 与isEmpty方法判断相同,参数可传多个,各参数间的判断是或的关系,若有empty则为true,为null或空的array时也为true

b.isNotEmpty 与isEmpty方法相反

c.isNoneEmpty 与isAnyEmpty方法判断相反,参数可传多个,各参数间的判断是或的关系,若无empty则为true

2.isBlank()

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

由上面的结果可以看出blank的意思是为null 或是"","  "的空字符串,与isEmpty的唯一区别就是把空字符串也包含在blank中,所以可以把empty看做blank看做empty的子集。是empty的一定是blank。

类似的方法有:

a.isAnyBlank 与isBlank判断相同,参数可传多个,若有为blank则返回true,数组为null或者空则返回true

b.isNotBlank与isBlank结果相反不为blank则返回结果为true

c.isNoneBlank与isAmyBlank判断相反,参数可传多个,若没有blank则返回true

3.trim()

StringUtils.trim(null)          = null

StringUtils.trim("")            = ""
StringUtils.trim("     ")       = ""
StringUtils.trim("abc")         = "abc"
StringUtils.trim("    abc    ") = "abc"

StringUtils.trim("    a b c    ") = "a b c"

可看作String类中trim增强版,若参数为null则返回null否则去头和尾的空格

类似的方法有:

a.trimToNull,若为null 或空字符串则返回null否则去头去尾空格

b.trimToEmpty若为null 或空字符串则返回""否则去头去尾空格

4.strip

StringUtils.strip(null)     = null

StringUtils.strip("")       = ""
StringUtils.strip("   ")    = ""
StringUtils.strip("abc")    = "abc"
StringUtils.strip("  abc")  = "abc"
StringUtils.strip("abc  ")  = "abc"
StringUtils.strip(" abc ")  = "abc"
StringUtils.strip(" ab c ") = "ab c"

从例子可以看出,若为null返回null若空字符串返回“”否则去头去尾空格

类似的方法有:

a.stripToNull 若为null或空字符串,返回null 否则去头尾空格

b.stripToEmpty 若为null或空字符串,返回""否则去头去尾空格

c.strip(Str a,Str b),与strip方法为重载关系,表示a去掉头尾b后返回,若为null或“”则返回对应的null或“”若为“     ”空字符串则与其他相同,去头去尾

d.stripEnd(Str,Str),去尾,null或“”则直接返回原值

e.stripAll(Str[]),按顺序返回Str[],若为null或空则返回 null或空,否则去头去尾空格

f.stripAll(Str[] a,Str b) stripAll的重载方法,表示a去掉b后返回。

g.stripAccents?,简单看了下叫做重音替换,随后尝试了下使用,结果和示例提供结果不一致,待有时间继续了解,这里先记一笔

5.equals(Str a,Str b)

若a,b中有一个为null则返回false,否则可以理解为调用String方法的equals对比

类似方法:

a.equalsIgnoreCase与equals方法的唯一区别是不区分大小写

6.indexOf(Str a,int b)

 计算b第一次在a中出现的位置,从0开始计数,a若为null或“”或是在a中找不到b则返回-1

类似方法有:

a.indexOf(Str a ,int b, int c)  a中 c+1起b出现的位置,找不到则返回-1,c超出则返回-1,a为空或是null则返回-1

b.indexOf(Str a , Str b) a中b出现的位置(第一个字母的位置),从0开始计数 a或b为null则返回-1

c.indexOf(Str a,Str b, int c) 从c+1起b出现在a中的位置判断与上方法基本相同

d.ordinalIndexOf(Str a,Str b,int c)返回b在a中的第c次出现的位置,若无则返回-1若a或b为null则返回-1。

e.indexOfIgnoreCase(Str a,Str b)返回b在a中的位置,忽略大小写,若其中为null则返回-1若找不到则返回-1

f.indexOfIgnoreCase(Str a,Str b,int c)从c+1开始返回b在a中的位置,忽略大小写,与前一方法基本相同

7.lastIndexOf(Str a,int b)

b最后一次在a中出现的位置,从0开始计数,a若为null或“”或是在a中找不到b则返回-1

类似的方法有:

a.indexOf(Str a,int b,int c) a中 c+1位之后b最后出现的位置,找不到则返回-1,c超出则返回-1,a为空或是null则返回-1

b.lastIndexOf(Str a,Str b)a中b最后一次出现的位置(第一个字母的位置),从0开始计数 a或b为null则返回-1

c.lastOrdinalIndexOf(Str a,Str b,int c) 返回b在a中的第c次后最后出现的位置,若第c次即为最后一次,则返回第一次出现的位置。若无则返回-1若a或b为null则返回-1。

--------------------------------------------------------还没写完,有空继续------------------------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值