文档章节

CommonLang3中的StringUtils最全解析

丌官尚雄
 丌官尚雄
发布于 02/21 14:39
字数 1729
阅读 28
收藏 7

isEmpty

public static boolean isEmpty(CharSequence cs)

常用函数之一,判断字符串是否为""或者null

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

isNotEmpty

public static boolean isNotEmpty(CharSequence cs)

最常用函数之一,跟上面方法相对

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

isAnyEmpty

public static boolean isAnyEmpty(CharSequence... css)

任意一个参数为空的话,返回true, 如果这些参数都不为空的话返回false。

在写一些判断条件的时候,这个方法还是很实用的。

 StringUtils.isAnyEmpty(null)             = true
 StringUtils.isAnyEmpty(null, "foo")      = true
 StringUtils.isAnyEmpty("", "bar")        = true
 StringUtils.isAnyEmpty("bob", "")        = true
 StringUtils.isAnyEmpty("  bob  ", null)  = true
 StringUtils.isAnyEmpty(" ", "bar")       = false
 StringUtils.isAnyEmpty("foo", "bar")     = false

isNoneEmpty

public static boolean isNoneEmpty(CharSequence... css)

任意一个参数是空,返回false 所有参数都不为空,返回true

注意这些方法的用法

 StringUtils.isNoneEmpty(null)             = false
 StringUtils.isNoneEmpty(null, "foo")      = false
 StringUtils.isNoneEmpty("", "bar")        = false
 StringUtils.isNoneEmpty("bob", "")        = false
 StringUtils.isNoneEmpty("  bob  ", null)  = false
 StringUtils.isNoneEmpty(" ", "bar")       = true
 StringUtils.isNoneEmpty("foo", "bar")     = true

isBlank

public static boolean isBlank(CharSequence cs)

判断字符对象是不是空字符串,注意与isEmpty的区别

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

isNotBlank

public static boolean isNotBlank(CharSequence cs)

原理同上

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

isAnyBlank

public static boolean isAnyBlank(CharSequence... css)
 StringUtils.isAnyBlank(null)             = true
 StringUtils.isAnyBlank(null, "foo")      = true
 StringUtils.isAnyBlank(null, null)       = true
 StringUtils.isAnyBlank("", "bar")        = true
 StringUtils.isAnyBlank("bob", "")        = true
 StringUtils.isAnyBlank("  bob  ", null)  = true
 StringUtils.isAnyBlank(" ", "bar")       = true
 StringUtils.isAnyBlank("foo", "bar")     = false

isNoneBlank

public static boolean isNoneBlank(CharSequence... css)
 StringUtils.isNoneBlank(null)             = false
 StringUtils.isNoneBlank(null, "foo")      = false
 StringUtils.isNoneBlank(null, null)       = false
 StringUtils.isNoneBlank("", "bar")        = false
 StringUtils.isNoneBlank("bob", "")        = false
 StringUtils.isNoneBlank("  bob  ", null)  = false
 StringUtils.isNoneBlank(" ", "bar")       = false
 StringUtils.isNoneBlank("foo", "bar")     = true

trim

public static String trim(String str)

移除字符串两端的空字符串,制表符char <= 32如:\n \t 如果为空的话,返回空

如果为""

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

变体有

public static String trimToNull(String str)
public static String trimToEmpty(String str)

不常用,跟trim()方法类似

strip

public static String strip(String str)
public static String strip(String str, String stripChars)

str:被处理的字符串,可为空 stripChars: 删除的字符串,

 StringUtils.strip(null, *)          = null
 StringUtils.strip("", *)            = ""
 StringUtils.strip("abc", null)      = "abc"
 StringUtils.strip("  abc", null)    = "abc"
 StringUtils.strip("abc  ", null)    = "abc"
 StringUtils.strip(" abc ", null)    = "abc"
 StringUtils.strip("  abcyx", "xyz") = "  abc"

equals

public static boolean equals(CharSequence cs1, CharSequence cs2)

字符串比对方法,是比较实用的方法之一,两个比较的字符串都能为空,不会报空指针异常。

 StringUtils.equals(null, null)   = true
 StringUtils.equals(null, "abc")  = false
 StringUtils.equals("abc", null)  = false
 StringUtils.equals("abc", "abc") = true
 StringUtils.equals("abc", "ABC") = false

equalsIgnoreCse

public static boolean equalsIgnoreCase(CharSequence str1, CharSequence str2)

上面方法的变体 字符串比较(忽略大小写),在验证码……等字符串比较,真是很实用。

StringUtils.equalsIgnoreCase(null, null)   = true
StringUtils.equalsIgnoreCase(null, "abc")  = false
StringUtils.equalsIgnoreCase("abc", null)  = false
StringUtils.equalsIgnoreCase("abc", "abc") = true
StringUtils.equalsIgnoreCase("abc", "ABC") = true

indexOf

public static int indexOf(CharSequence seq, int searchChar)

indexOf这个方法不必多说,这个方法主要处理掉了空字符串的问题,不会报空指针,有一定用处

 StringUtils.indexOf(null, *)         = -1
 StringUtils.indexOf("", *)           = -1
 StringUtils.indexOf("aabaabaa", 'a') = 0
 StringUtils.indexOf("aabaabaa", 'b') = 2

ordinalIndexOf

public static int ordinalIndexOf(CharSequence str, CharSequence searchStr, int ordinal)

字符串在另外一个字符串里,出现第Ordinal次的位置

 StringUtils.ordinalIndexOf(null, *, *)          = -1
 StringUtils.ordinalIndexOf(*, null, *)          = -1
 StringUtils.ordinalIndexOf("", "", *)           = 0
 StringUtils.ordinalIndexOf("aabaabaa", "a", 1)  = 0
 StringUtils.ordinalIndexOf("aabaabaa", "a", 2)  = 1
 StringUtils.ordinalIndexOf("aabaabaa", "b", 1)  = 2
 StringUtils.ordinalIndexOf("aabaabaa", "b", 2)  = 5
 StringUtils.ordinalIndexOf("aabaabaa", "ab", 1) = 1
 StringUtils.ordinalIndexOf("aabaabaa", "ab", 2) = 4
 StringUtils.ordinalIndexOf("aabaabaa", "", 1)   = 0
 StringUtils.ordinalIndexOf("aabaabaa", "", 2)   = 0

lastIndexOf

public static int lastIndexOf(CharSequence seq, int searchChar)

字符串最后一次出现的位置

 StringUtils.lastIndexOf(null, *)         = -1
 StringUtils.lastIndexOf("", *)           = -1
 StringUtils.lastIndexOf("aabaabaa", 'a') = 7
 StringUtils.lastIndexOf("aabaabaa", 'b') = 5

lastOrdinalIndexOf

public static int lastOrdinalIndexOf(CharSequence str, CharSequence searchStr, int ordinal)

字符串searchStr在str里面出现倒数第ordinal出现的位置

 StringUtils.lastOrdinalIndexOf(null, *, *)          = -1
 StringUtils.lastOrdinalIndexOf(*, null, *)          = -1
 StringUtils.lastOrdinalIndexOf("", "", *)           = 0
 StringUtils.lastOrdinalIndexOf("aabaabaa", "a", 1)  = 7
 StringUtils.lastOrdinalIndexOf("aabaabaa", "a", 2)  = 6
 StringUtils.lastOrdinalIndexOf("aabaabaa", "b", 1)  = 5
 StringUtils.lastOrdinalIndexOf("aabaabaa", "b", 2)  = 2
 StringUtils.lastOrdinalIndexOf("aabaabaa", "ab", 1) = 4
 StringUtils.lastOrdinalIndexOf("aabaabaa", "ab", 2) = 1
 StringUtils.lastOrdinalIndexOf("aabaabaa", "", 1)   = 8
 StringUtils.lastOrdinalIndexOf("aabaabaa", "", 2)   = 8

contains

public static boolean contains(CharSequence seq, int searchChar)

字符串seq是否包含searchChar

 StringUtils.contains(null, *)    = false
 StringUtils.contains("", *)      = false
 StringUtils.contains("abc", 'a') = true
 StringUtils.contains("abc", 'z') = false

containsAny

public static boolean containsAny(CharSequence cs, char... searchChars)

包含后面数组中的任意对象,返回true

 StringUtils.containsAny(null, *)                = false
 StringUtils.containsAny("", *)                  = false
 StringUtils.containsAny(*, null)                = false
 StringUtils.containsAny(*, [])                  = false
 StringUtils.containsAny("zzabyycdxx",['z','a']) = true
 StringUtils.containsAny("zzabyycdxx",['b','y']) = true
 StringUtils.containsAny("aba", ['z'])           = false

substring

public static String substring(String str, int start)

字符串截取

 StringUtils.substring(null, *)   = null
 StringUtils.substring("", *)     = ""
 StringUtils.substring("abc", 0)  = "abc"
 StringUtils.substring("abc", 2)  = "c"
 StringUtils.substring("abc", 4)  = ""
 StringUtils.substring("abc", -2) = "bc"
 StringUtils.substring("abc", -4) = "abc"

left right mid

public static String left(String str, int len)
public static String right(String str, int len)
public static String mid(String str, int pos, int len)

这三个方法类似都是截取字符串

split

public static String[] split(String str, String separatorChars)

字符串分割

 StringUtils.split(null, *)         = null
 StringUtils.split("", *)           = []
 StringUtils.split("abc def", null) = ["abc", "def"]
 StringUtils.split("abc def", " ")  = ["abc", "def"]
 StringUtils.split("abc  def", " ") = ["abc", "def"]
 StringUtils.split("ab:cd:ef", ":") = ["ab", "cd", "ef"]

join

public static <T> String join(T... elements)

字符串连接

 StringUtils.join(null)            = null
 StringUtils.join([])              = ""
 StringUtils.join([null])          = ""
 StringUtils.join(["a", "b", "c"]) = "abc"
 StringUtils.join([null, "", "a"]) = "a"

join

public static String join(Object[] array, char separator)

特定字符串连接数组,很多情况下还是蛮实用,不用自己取拼字符串

 StringUtils.join(null, *)               = null
 StringUtils.join([], *)                 = ""
 StringUtils.join([null], *)             = ""
 StringUtils.join(["a", "b", "c"], ';')  = "a;b;c"
 StringUtils.join(["a", "b", "c"], null) = "abc"
 StringUtils.join([null, "", "a"], ';')  = ";;a"

deleteWhitespace

public static String deleteWhitespace(String str)

删除空格

 StringUtils.deleteWhitespace(null)         = null
 StringUtils.deleteWhitespace("")           = ""
 StringUtils.deleteWhitespace("abc")        = "abc"
 StringUtils.deleteWhitespace("   ab  c  ") = "abc"

removeStart

public static String removeStart(String str, String remove)

删除以特定字符串开头的字符串,如果没有的话,就不删除。

 StringUtils.removeStart(null, *)      = null
 StringUtils.removeStart("", *)        = ""
 StringUtils.removeStart(*, null)      = *
 StringUtils.removeStart("www.domain.com", "www.")   = "domain.com"
 StringUtils.removeStart("domain.com", "www.")       = "domain.com"
 StringUtils.removeStart("www.domain.com", "domain") = "www.domain.com"
 StringUtils.removeStart("abc", "")    = "abc"

rightPad

public static String rightPad(String str, int size, char padChar)

生成订单号,的时候还是很实用的。右边自动补齐。

 StringUtils.rightPad(null, *, *)     = null
 StringUtils.rightPad("", 3, 'z')     = "zzz"
 StringUtils.rightPad("bat", 3, 'z')  = "bat"
 StringUtils.rightPad("bat", 5, 'z')  = "batzz"
 StringUtils.rightPad("bat", 1, 'z')  = "bat"
 StringUtils.rightPad("bat", -1, 'z') = "bat"

leftPad

public static String leftPad(String str, int size, char padChar)

左边自动补齐

 StringUtils.leftPad(null, *, *)     = null
 StringUtils.leftPad("", 3, 'z')     = "zzz"
 StringUtils.leftPad("bat", 3, 'z')  = "bat"
 StringUtils.leftPad("bat", 5, 'z')  = "zzbat"
 StringUtils.leftPad("bat", 1, 'z')  = "bat"
 StringUtils.leftPad("bat", -1, 'z') = "bat"

center

public static String center(String str, int size)

将字符在某特定长度下,句子

 StringUtils.center(null, *)   = null
 StringUtils.center("", 4)     = "    "
 StringUtils.center("ab", -1)  = "ab"
 StringUtils.center("ab", 4)   = " ab "
 StringUtils.center("abcd", 2) = "abcd"
 StringUtils.center("a", 4)    = " a  "

capitalize

public static String capitalize(String str)

首字母大写

 StringUtils.capitalize(null)  = null
 StringUtils.capitalize("")    = ""
 StringUtils.capitalize("cat") = "Cat"
 StringUtils.capitalize("cAt") = "CAt"

swapCase

public static String swapCase(String str)

反向大小写

 StringUtils.swapCase(null)                 = null
 StringUtils.swapCase("")                   = ""
 StringUtils.swapCase("The dog has a BONE") = "tHE DOG HAS A bone"

isAlpha

public static boolean isAlpha(CharSequence cs)

判断字符串是否由字母组成

StringUtils.isAlpha(null)   = false
 StringUtils.isAlpha("")     = false
 StringUtils.isAlpha("  ")   = false
 StringUtils.isAlpha("abc")  = true
 StringUtils.isAlpha("ab2c") = false
 StringUtils.isAlpha("ab-c") = false

defaultString

public static String defaultString(String str, String defaultStr)

默认字符串,相当于三目运算,前面弱为空,则返回后面一个参数

 StringUtils.defaultString(null, "NULL")  = "NULL"
 StringUtils.defaultString("", "NULL")    = ""
 StringUtils.defaultString("bat", "NULL") = "bat"

reverse

public static String reverse(String str)

字符串翻转

 StringUtils.reverse(null)  = null
 StringUtils.reverse("")    = ""
 StringUtils.reverse("bat") = "tab"

abbreviate

public static String abbreviate(String str, int maxWidth)

缩略字符串, 省略号要占三位。maxWith小于3位会报错。

 StringUtils.abbreviate(null, *)      = null
 StringUtils.abbreviate("", 4)        = ""
 StringUtils.abbreviate("abcdefg", 6) = "abc..."
 StringUtils.abbreviate("abcdefg", 7) = "abcdefg"
 StringUtils.abbreviate("abcdefg", 8) = "abcdefg"
 StringUtils.abbreviate("abcdefg", 4) = "a..."
 StringUtils.abbreviate("abcdefg", 3) = IllegalArgumentException
public static String abbreviate(String str, int offset, int maxWidth)

缩略字符串的一些高级用法

 StringUtils.abbreviate(null, *, *)                = null
 StringUtils.abbreviate("", 0, 4)                  = ""
 StringUtils.abbreviate("abcdefghijklmno", -1, 10) = "abcdefg..."
 StringUtils.abbreviate("abcdefghijklmno", 0, 10)  = "abcdefg..."
 StringUtils.abbreviate("abcdefghijklmno", 1, 10)  = "abcdefg..."
 StringUtils.abbreviate("abcdefghijklmno", 4, 10)  = "abcdefg..."
 StringUtils.abbreviate("abcdefghijklmno", 5, 10)  = "...fghi..."
 StringUtils.abbreviate("abcdefghijklmno", 6, 10)  = "...ghij..."
 StringUtils.abbreviate("abcdefghijklmno", 8, 10)  = "...ijklmno"
 StringUtils.abbreviate("abcdefghijklmno", 10, 10) = "...ijklmno"
 StringUtils.abbreviate("abcdefghijklmno", 12, 10) = "...ijklmno"
 StringUtils.abbreviate("abcdefghij", 0, 3)        = IllegalArgumentException
 StringUtils.abbreviate("abcdefghij", 5, 6)        = IllegalArgumentException

warp

public static String wrap(String str, char wrapWith)

包装,用后面的字符串对前面的字符串进行包装

 StringUtils.wrap(null, *)        = null
 StringUtils.wrap("", *)          = ""
 StringUtils.wrap("ab", '\0')     = "ab"
 StringUtils.wrap("ab", 'x')      = "xabx"
 StringUtils.wrap("ab", '\'')     = "'ab'"
 StringUtils.wrap("\"ab\"", '\"') = "\"\"ab\"\""

© 著作权归作者所有

上一篇: CentOS 更新 yum 源
下一篇: JDK的安装[Centos]
丌官尚雄

丌官尚雄

粉丝 2
博文 41
码字总数 41960
作品 0
烟台
后端工程师
私信 提问
CommonLang3 --StringUtils使用指南

转载自(http://blog.csdn.net/xuxiaoxie/article/details/52095930) public static boolean isEmpty(CharSequence cs) 常用函数之一,判断字符串是否为""或者null StringUtils.isEmpty(nu......

宇的季节
2018/03/08
0
0
在Controller中以一个类作为返回结果,然后解析成JSON传输给JSP页面。

在Controller中以一个类作为返回结果,然后解析成JSON传输给JSP页面。 @RequestMapping(value = "/upload", method = RequestMethod.POST) @ResponseBody public AjaxResult upload(HttpSer......

follitude
2015/12/09
601
0
spring源码学习之:xml标签扩展配置例子

在很多情况下,我们需要为系统提供可配置化支持,简单的做法可以直接基于Spring的标准Bean来配置,但配置较为复杂或者需要更多丰富控制的 时候,会显得非常笨拙。一般的做法会用原生态的方式...

无信不立
2016/08/19
0
0
StringUtils方法Reference详细

org.apache.commons.lang.StringUtils中方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出NullP...

HappyBKs
2016/07/31
161
0

没有更多内容

加载失败,请刷新页面

加载更多

Error和Exception

1.Error类和Exception类都是继承Throwable类 2.Error(错误)是系统中的错误,程序员是不能改变的和处理的,是在程序编译时出现的错误,只能通过修改程序才能修正。一般是指与虚拟机相关的问...

大瑞清_liurq
20分钟前
4
0
8086汇编基础 start 程序入口标签的示例

    IDE : Masm for Windows 集成实验环境 2015     OS : Windows 10 x64 typesetting : Markdown    blog : my.oschina.net/zhichengjiu    gitee : gitee.com/zhichengjiu   ......

志成就
25分钟前
4
0
uni app 零基础小白到项目实战2

<template> <scroll-view v-for="(card, index) in list" :key="index"> <view v-for =(item, itemIndex) in card"> {{item.value}}</view> </scroll-view></template> GraceUi va......

达达前端小酒馆
26分钟前
4
0
http keep-alive 解释

本文转载于:专业的前端网站➜http keep-alive 解释 1、概念 keep-alive示例: keep-alive模式(又称持久连接、连接重用)时,keep-alive功能使客户端到服务器端的连接持续有效,当出现对服务...

前端老手
31分钟前
4
0
groovy爬虫实例——历史上的今天

最近做了一个历史上今天的爬虫程序,跟历史天气数据源一致,数据量比较小,几十秒就爬完了。中间遇到一些问题,一起分享出来供大家参考。本项目源码和相关数据已经上传到了github,有兴趣的朋...

八音弦
41分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部