今天开始学习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。
--------------------------------------------------------还没写完,有空继续------------------------------------------------------------------