设为首页 收藏本站
查看: 369|回复: 0

[经验分享] apache Commons commons-lang StringUtils.java

[复制链接]

尚未签到

发表于 2017-1-8 07:45:58 | 显示全部楼层 |阅读模式
StringUtils中方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出NullPointerException,而是做了相应处理,例如,如果输入为null则返回也是null等,具体可以查看源代码)。

除了构造器,StringUtils中一共有130多个方法,并且都是static的,
所以我们可以这样调用StringUtils.xxx()。

下面分别对一些常用方法做简要介绍:

1. public static boolean isEmpty(String str)
判断某字符串是否为空,为空的标准是str == null 或 str.length() == 0
下面是示例:
StringUtils.isEmpty(null)          = true
StringUtils.isEmpty("")       = true
StringUtils.isEmpty(" ")      = false
StringUtils.isEmpty("        ")     = false
StringUtils.isEmpty("bob")       = false
StringUtils.isEmpty(" bob ") = false

2. public static boolean isNotEmpty(String str)
判断某字符串是否非空,等于!isEmpty(String str)
下面是示例:
StringUtils.isNotEmpty(null)        = false
StringUtils.isNotEmpty("")           = false
StringUtils.isNotEmpty(" ")      = true
StringUtils.isNotEmpty("         ")    = true
StringUtils.isNotEmpty("bob")   = true
StringUtils.isNotEmpty(" bob ")   = true

3. public static boolean isBlank(String str)
判断某字符串是否为空或长度为0或由空白符(whitespace)构成
下面是示例:
StringUtils.isBlank(null)         = true
StringUtils.isBlank("")            = true
StringUtils.isBlank(" ")                 = true
StringUtils.isBlank("        ")          = true
StringUtils.isBlank("\t \n \f \r")    = true
StringUtils.isBlank("\b")               = false
StringUtils.isBlank("bob")            = false
StringUtils.isBlank(" bob ")        = false

4. public static boolean isNotBlank(String str)
判断某字符串是否不为空且长度不为0且不由空白符(whitespace)构成,
等于!isBlank(String str)
下面是示例:
StringUtils.isNotBlank(null)        = false
StringUtils.isNotBlank("")               = false
StringUtils.isNotBlank(" ")          = false
StringUtils.isNotBlank("         ")        = false
StringUtils.isNotBlank("\t \n \f \r")     = false
StringUtils.isNotBlank("\b")              = true
StringUtils.isNotBlank("bob")           = true
StringUtils.isNotBlank(" bob ")   = true

5. public static String trim(String str)
去掉字符串两端的控制符(control characters, char <= 32)
如果输入为null则返回null
下面是示例:
StringUtils.trim(null)                = null
StringUtils.trim("")                 = ""
StringUtils.trim(" ")                          = ""
StringUtils.trim("     \b \t \n \f \r    ") = ""
StringUtils.trim("     \n\tss   \b")        = "ss"
StringUtils.trim(" d   d dd     ")     = "d   d dd"
StringUtils.trim("dd     ")            = "dd"
StringUtils.trim("     dd       ")           = "dd"

6.public static String trimToNull(String str)
去掉字符串两端的控制符(control characters, char <= 32)
如果变为null或"",则返回null
下面是示例:
StringUtils.trimToNull(null)                = null
StringUtils.trimToNull("")                           = null
StringUtils.trimToNull(" ")                          = null
StringUtils.trimToNull("     \b \t \n \f \r    ") = null
StringUtils.trimToNull("     \n\tss   \b")     = "ss"
StringUtils.trimToNull(" d   d dd     ")        = "d   d dd"
StringUtils.trimToNull("dd     ")           = "dd"
StringUtils.trimToNull("     dd       ")          = "dd"

7.public static String trimToEmpty(String str)
去掉字符串两端的控制符(control characters, char <= 32)
如果变为null或"",则返回""
下面是示例:
StringUtils.trimToEmpty(null)                    = ""
StringUtils.trimToEmpty("")                   = ""
StringUtils.trimToEmpty(" ")                          = ""
StringUtils.trimToEmpty("     \b \t \n \f \r    ") = ""
StringUtils.trimToEmpty("     \n\tss   \b")     = "ss"
StringUtils.trimToEmpty(" d   d dd     ")      = "d   d dd"
StringUtils.trimToEmpty("dd     ")             = "dd"
StringUtils.trimToEmpty("     dd       ")          = "dd"

8.public static String strip(String str)
去掉字符串两端的空白符(whitespace),
如果输入为null则返回null
下面是示例(注意和trim()的区别):
StringUtils.strip(null)                    = null
StringUtils.strip("")                   = ""
StringUtils.strip(" ")                  = ""
StringUtils.strip("     \b \t \n \f \r    ")        = "\b"
StringUtils.strip("     \n\tss   \b")             = "ss   \b"
StringUtils.strip(" d   d dd     ")      = "d   d dd"
StringUtils.strip("dd     ")             = "dd"
StringUtils.strip("     dd       ")          = "dd"

9.public static String stripToNull(String str)
去掉字符串两端的空白符(whitespace),
如果变为null或"",则返回null
下面是示例(注意和trimToNull()的区别):
StringUtils.stripToNull(null)                   = null
StringUtils.stripToNull("")                    = null
StringUtils.stripToNull(" ")                 = null
StringUtils.stripToNull("     \b \t \n \f \r    ") = "\b"
StringUtils.stripToNull("     \n\tss   \b")       = "ss   \b"
StringUtils.stripToNull(" d   d dd     ")       = "d   d dd"
StringUtils.stripToNull("dd     ")                 = "dd"
StringUtils.stripToNull("     dd       ")          = "dd"

10.public static String stripToEmpty(String str)
去掉字符串两端的空白符(whitespace),
如果变为null或"",则返回""
下面是示例(注意和trimToEmpty()的区别):
StringUtils.stripToNull(null)                  = ""
StringUtils.stripToNull("")                   = ""
StringUtils.stripToNull(" ")                  = ""
StringUtils.stripToNull("     \b \t \n \f \r    ")   = "\b"
StringUtils.stripToNull("     \n\tss   \b")     = "ss   \b"
StringUtils.stripToNull(" d   d dd     ")     = "d   d dd"
StringUtils.stripToNull("dd     ")                 = "dd"
StringUtils.stripToNull("     dd       ")           = "dd"
11.public static boolean contains(String str, char searchChar)
判断字符串str中是否包含字符searchChar。
如果str为null或"",返回false;
如果searchChar不在str中,返回false。

12.public static boolean contains(String str, String searchStr)
判断字符串str是否包含字符串searchStr。
如果str为null或searchStr为null,返回false;
如果str为"",并且searchStr为"",返回true
举例:
StringUtils.contains("", "")       = true
StringUtils.contains("dfg", "")    = true
StringUtils.contains("dfg", "d")   = true
StringUtils.contains("dfg", "gz") = false

13.public static boolean containsIgnoreCase(String str, String searchStr)
判断字符串str是否包含字符串searchStr,不区分大小写。
和12类似。

14.public static int indexOfAny(String str, char[] searchChars)
找出字符数组searchChars中的字符第一次出现在字符串str中的位置。
如果字符数组中的字符都不在字符串中,则返回-1
如果字符串为null或"",则返回-1
举例(*表示任意):
StringUtils.indexOfAny(null, *)                 = -1
StringUtils.indexOfAny("", *)                   = -1
StringUtils.indexOfAny(*, [])                   = -1
StringUtils.indexOfAny("asdf", ['a','f',' '])   = 0
StringUtils.indexOfAny("bs df", ['a','f',' ']) = 2
StringUtils.indexOfAny("bsdf", ['a','f',' '])   = 3
StringUtils.indexOfAny("bbeegg", ['a','f',' ']) = -1

15.public static int indexOfAny(String str, String searchChars)
找出字符串searchChars中的字符第一次出现在字符串str中的位置。
如果字符串searchChars中的字符都不在字符串str中,则返回-1
如果searchChars或str为null或为"",则返回-1
举例(*表示任意):
StringUtils.indexOfAny(null, *)         = -1
StringUtils.indexOfAny("", *)           = -1
StringUtils.indexOfAny(*, null)         = -1
StringUtils.indexOfAny(*, "")           = -1
StringUtils.indexOfAny("asdf", "af ")   = 0
StringUtils.indexOfAny("bs df", "af ") = 2
StringUtils.indexOfAny("bsdf", "af ")   = 3
StringUtils.indexOfAny("bbeegg", "af ") = -1

16.public static int indexOfAnyBut(String str, char[] searchChars)
找出字符串str中不在字符数组searchChars中的第一个字符的位置。
如果字符串中的所有字符都在字符数组中,则返回-1
如果字符串为null或"",则返回-1
举例(*表示任意):
StringUtils.indexOfAnyBut(null, *)                 = -1
StringUtils.indexOfAnyBut("", *)                   = -1
StringUtils.indexOfAnyBut(*, [])                   = -1
StringUtils.indexOfAnyBut("asdf", ['a','f',' '])   = 1
StringUtils.indexOfAnyBut("bs df", ['a','f',' ']) = 0
StringUtils.indexOfAnyBut(" aaf", ['a','f',' '])   = -1
StringUtils.indexOfAnyBut("bbeegg", ['a','f',' ']) = 0

17.public static int indexOfAnyBut(String str, String searchChars)
找出字符串str中不在字符串searchChars中的第一个字符的位置。
如果字符串str中的所有字符都在字符串searchChars中,则返回-1
如果字符串str或searchChars为null或"",则返回-1
举例(*表示任意):
StringUtils.indexOfAnyBut(null, *)         = -1
StringUtils.indexOfAnyBut("", *)           = -1
StringUtils.indexOfAnyBut(*, null)         = -1
StringUtils.indexOfAnyBut(*, "")           = -1
StringUtils.indexOfAnyBut("asdf", "af ")   = 1
StringUtils.indexOfAnyBut("bs df", "af ") = 0
StringUtils.indexOfAnyBut(" aaf", "af ")   = -1
StringUtils.indexOfAnyBut("bbeegg", "af ") = 0

18.public static boolean containsOnly(String str, char[] valid)
判断是否字符串str仅包含字符数组valid中的字符,即字符串中的字符是否都在字符数组中。
如果str为null,则返回false;如果str为"",则返回true
举例(*表示任意):
StringUtils.containsOnly(null, *))              = false
StringUtils.containsOnly("", *))                = true
StringUtils.containsOnly("afaf", ['a','f',' ']))= true
StringUtils.containsOnly("af a", ['a','f',' ']))= true
StringUtils.containsOnly("a", ['a','f',' ']))   = true
StringUtils.containsOnly("afg", ['a','f',' '])) = false
StringUtils.containsOnly("bbeegg", []))         = false

19.public static boolean containsOnly(String str, String validChars)
判断是否字符串str仅包含字符串validChars中的字符,
即字符串str中的字符是否都在字符串validChars中。
和18类似,举例(*表示任意):
StringUtils.containsOnly(null, *)       = false
StringUtils.containsOnly(*, null)       = false
StringUtils.containsOnly("", "")        = true
StringUtils.containsOnly("", "a")       = true
StringUtils.containsOnly("afaf", "af ") = true
StringUtils.containsOnly("af a", "af ") = true
StringUtils.containsOnly("afg", "af ") = false
StringUtils.containsOnly("afg", "")     = false

20.public static boolean containsNone(String str, char[] invalidChars)
判断是否字符串str不包含字符数组invalidChars中的字符,如果含有则返回false。
举例(*表示任意):
StringUtils.containsNone(null, *)               = true
StringUtils.containsNone(*, [])                 = true
StringUtils.containsNone("", *)                 = true
StringUtils.containsNone("ab", [])              = true
StringUtils.containsNone("b", ['a','f',' '])    = true
StringUtils.containsNone("bcd", ['a','f',' ']) = true
StringUtils.containsNone("abc", ['a','f',' ']) = false
StringUtils.containsNone(" ", ['a','f',' '])    = false

21.public static boolean containsNone(String str, String invalidChars)
判断是否字符串str不包含字符串invalidChars中的字符,如果含有则返回false。
举例(*表示任意):
StringUtils.containsNone(null, *)       = true
StringUtils.containsNone(*, null)       = true
StringUtils.containsNone("", *)         = true
StringUtils.containsNone("ab", "")      = true
StringUtils.containsNone("b", "af ")    = true
StringUtils.containsNone("bcd", "af ") = true
StringUtils.containsNone("abc", "af ") = false
StringUtils.containsNone(" ", "af ")    = false

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-325278-1-1.html 上篇帖子: apache.commons.lang2.3学习笔记-CharEncoding 下篇帖子: apache+tomcat配置动态二级域名
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表