apache commons StringUtils 详情文档

StringUtils.split

分割字符串,作用同String对象的原生split方法
示例代码: String[] result =StringUtils.split("1,2,3,4,5",",")

StringUtils.replace

作用同String对象的原生replace方法
示例代码:String result = StringUtils.replace("hello excel","excel","world");
结果:hello world

Strings.isNullOrEmpty

判断字符串是否为空字符串(0长度字符串)或者null,是一个使用频率非常高的函数
示例代码:boolean result = Strings.isNullOrEmpty(str);
效果跟 string == null || string == "" 相当

StringUtils.isBlank

判断是否是空白字符串,null、""、" " 等没有实际内容的都属于空白字符串。和Strings.isNullOrEmpty不同,当字符段内容是空格时,如 " ",用Strings.isNullOrEmpty测试的结果是false,而StringUtils.isBlank测试的结果是true

StringUtils.isNotBlank

判断字符段是否为非空白,相当于 StringUtils.isBlank 取反

StringUtils.isAllBlank

判断一个或多个字符串是是否为空白

示例代码:
StringUtils.isAllBlank(new String[]{" ","",null}); //true

StringUtils.isAllBlank(null,""," ","张三"); //false


StringUtils.abbreviate

当字符串长度不确定,但使用的时候又不想他超过指定长度,就可以使用这个方法来截断
示例代码:
StringUtils.abbreviate("1234567890",9); 结果:123456...
StringUtils.abbreviate("1234567890",5); 结果:12…
应用场景: 需要将一段日志写入MySql,日志字段类型为varchar(1024),那么当日志长度大于1024时,写入会失败,此时我们可以使用这个函数处理过长的日志字符串
logContent = StringUtils.abbreviate(logContent,1024);
日志内容将被截断,超出部分用…代替

默认的省略字符是…,我们也可以自己指定,使用abbreviate的重载版本即可
StringUtils.abbreviate("1234567890","。。。",9); 结果123456。。。

注意: 默认情况下maxWidth参数不能小于4,否则会抛出异常。如果是自己指定省略符,那么省略符的长度必须小于maxWidth参数,否则也会抛出异常

StringUtils.abbreviateMiddle

作用与StringUtils.abbreviate相似,也是截断过长的字符串,不同点在于位置不同,StringUtils.abbreviateMiddle用省略符号代替的位置在整个字符串的中间
StringUtils.abbreviateMiddle("123456789","...",8);结果123...89
StringUtils.abbreviateMiddle("123456789","*",8);结果1234*789
生成的结果长度不大于length参数指定的值

StringUtils.appendIfMissing

如果字符串未出现指定的后缀,则追加后缀,否则返回原字符串

StringUtils.appendIfMissing("abc123","789"); 结果:abc123789
StringUtils.appendIfMissing("abc123","123");结果:abc123

此方法还有一个重载版本

appendIfMissing(final String str, final CharSequence suffix, final CharSequence... suffixes)

后缀可以指定多个,如果字符串的后缀在所有指定的后缀中未出现,则追加第一个后缀,否则返回原字符串

StringUtils.appendIfMissing("abc123","456","23","3");结果:abc123
StringUtils.appendIfMissing("abc123","456","x","xy");结果:abc123456

StringUtils.appendIfMissingIgnoreCase

StringUtils.appendIfMissing的忽略字母大小写版本
StringUtils.appendIfMissingIgnoreCase("abcdefg","EFG");结果:abcdefg


StringUtils.capitalize

将字符串的首字母转换成大写,这个函数的神奇之处在于可以转换一些特殊字符,比如dz,看起来是2个字符,其实却是一个,不信可以复制试试,看能不能复制其中一半。capitalize方法将这种字符分拆,并将其中首字母转成成大写


StringUtils.center

在字符串两边填充空格,并返回带空格的新字符串,新字符串长度等于size参数的长度

StringUtils.center("abc",10);结果:。。。abc。。。。(句号表示空格)

此方法还有重载版本,可以自己指定填充的字符串

StringUtils.center("abc",10,"-");结果:---abc----

StringUtils.leftPad

在字符串左侧填充空格:StringUtils.leftPad("abc",10);结果:。。。。。。。abc(句号表示空格)

此方法还有重载版本,可以自己指定填充的字符串

StringUtils.leftPad("abc",10,"-");结果:-------abc

StringUtils.rightPad

在字符串右侧填充空格: StringUtils.rightPad("abc",10);结果:abc。。。。。。。(句号表示空格)

此方法还有重载版本,可以自己指定填充的字符串

StringUtils.rightPad("abc",10,"-");结果:abc-------

StringUtils.chomp

切除字符串最后面的子字符串

StringUtils.chomp("abc123","123") = abc
StringUtils.chomp("abc123","1234") = abc123

此方法还有一个不带自定字符串的重载版本,用于去除字符串尾部的换行符

StringUtils.chomp("abc123\n\r") = abc123

StringUtils.chop

同 StringUtils.chomp

StringUtils.compare

比较字符串,作用同String自带的compareTo方法,并且有功能增强。第三个参数在字符串为null的i情况下决定返回正数还是负数
StringUtils.compare(null,"abc",true) = -1
StringUtils.compare(null,"abc",false) = 1
StringUtils.compare("abc",null,true) = 1
StringUtils.compare("abc",null,false) = -1

StringUtils.compareIgnoreCase

StringUtils.compare的忽略大小写版本

StringUtils.contains

检查字符串是否包含某个只字符串

StringUtils.containsAny

此方法有两个重载的版本,含义不同
boolean containsAny(final CharSequence cs, final CharSequence searchChars)
主字符串是否包含子字符串中任意的字符
StringUtils.containsAny("abc","ab")= true
StringUtils.containsAny("abc","ac") = true
StringUtils.containsAny("abc","ae") = true
StringUtils.containsAny("abc","de") = false

boolean containsAny(final CharSequence cs, final CharSequence... searchCharSequences)
主字符串是否包含指定的任意子字符串
StringUtils.containsAny("abc","ab","ef") = true
StringUtils.containsAny("abc","ad","ef") = false
StringUtils.containsAny("abc","ac","ef") = false

StringUtils.containsIgnoreCase

StringUtils.contains的忽略大小写版本

StringUtils.containsNone

此方法有两个重载版本

boolean containsNone(final CharSequence cs, final char... searchChars)
主字符串是否不包含所有自定的字符
StringUtils.containsNone("abc",'a','d','e','f') = false,因为存在a
StringUtils.containsNone("abc",'d','e','f') = true

boolean containsNone(final CharSequence cs, final String invalidChars)
主字符串是否不包含子字符串中任意字符
StringUtils.containsNone("abc","cd") = false,因为存在c
StringUtils.containsNone("abc","de") = true


StringUtils.containsOnly
左边字符串中的每一个字符必须出现在右边字符串中
StringUtils.containsOnly("abc","1a2b3c") = true
StringUtils.containsOnly("abc","1a2b3") = false

重载版本
boolean containsOnly(final CharSequence cs, final char... valid)
StringUtils.containsOnly("abc",'a','b','c','d') = true
StringUtils.containsOnly("abc",'a','b','d') = false

StringUtils.containsWhitespace

检测字符串中是否包含空白,包含回车和换行等空白符号

StringUtils.containsWhitespace("abc de") = true
StringUtils.containsWhitespace("abc\nde") =true
StringUtils.containsWhitespace("abc\rde") = true
StringUtils.containsWhitespace("abcde") = false

StringUtils.convertRemainingAccentCharacters

StringUtils.countMatches

子串在主串中出现的次数

StringUtils.countMatches("aabbcc",'a') = 2
StringUtils.countMatches("aabbcc","aa") = 1

StringUtils.defaultIfBlank

如果字符串为空白,则用一个默认字符串代替

StringUtils.defaultIfBlank(null,"123") = 123
StringUtils.defaultIfBlank("","123") = 123
StringUtils.defaultIfBlank(" ","123") = 123

StringUtils.defaultIfEmpty

如果字符串为空,则用默认字符串代替

StringUtils.defaultIfEmpty(null,"123") = 123
StringUtils.defaultIfEmpty("","123") = 123

StringUtils.defaultString

如果字符串为null,则返回一个默认字符串

StringUtils.defaultString("123") = 123
StringUtils.defaultString(null) = ""
StringUtils.defaultString(null,"456") = 456

StringUtils.deleteWhitespace

删除字符串中的空白

StringUtils.deleteWhitespace("1 23") = 123

StringUtils.difference

去除参数2字符串中与参数1字符串中相同的部分

StringUtils.difference("abc456","abc123") = 123

StringUtils.endsWith

主字符串是否以子字符串结尾
StringUtils.endsWith("abc456","456") = true
StringUtils.endsWith("abc456","1456") = false

StringUtils.endsWithAny

字符串是否以指定的一个或者多个字符串中的其中一个结尾

StringUtils.endsWithAny("abc456","1456","456") = true
StringUtils.endsWithAny("abc456","1456","2456") = false


StringUtils.endsWithIgnoreCase

StringUtils.endsWith的忽略大小写版本

StringUtils.equals

同String.equals方法的增强,可处理空字符串

StringUtils.equalsAny

指定多个对比的字符串,有一个与主字符串相等即可

StringUtils.equalsAny("abc","BC","abc") = true

StringUtils.equalsAnyIgnoreCase

StringUtils.equalsAny的忽略大小写版本

StringUtils.equalsIgnoreCase

StringUtils.equals的忽略大小写版本

StringUtils.firstNonBlank

获得一组字符串中第一个非空白的字符

StringUtils.firstNonBlank(" ","123","abc") = 123


StringUtils.firstNonEmpty

获得一组字符串中第一个非空字符

StringUtils.firstNonBlank(" ","123","abc") = 空白
StringUtils.firstNonBlank("123","abc")=123

StringUtils.getCommonPrefix

获得一组字符串公共部分的前缀

StringUtils.getCommonPrefix("abcd","abc","ab") = ab

StringUtils.getDigits

提取字符串中数值部分

StringUtils.getDigits("abc123def456") = 123456

StringUtils.indexOf

同String.indexOf

StringUtils.indexOfAny

指定的一组字符串中其中一个在主字符串中出现的位置

StringUtils.indexOfAny("abc123","abcd","123","bc") = 1

StringUtils.indexOfAnyBut

子字符串与主字符串不匹配部分的位置

StringUtils.indexOfAnyBut("abc123","abcdef") = 3


StringUtils.indexOfDifference

两个字符串不同部分的位置

StringUtils.indexOfDifference("123","124") = 2

StringUtils.indexOfIgnoreCase

StringUtils.indexOf的忽略大小写版本

StringUtils.isAllBlank

判断一组字符串是否都是空白

StringUtils.isAllBlank(null,""," ") = true

StringUtils.isAllEmpty

判断一组字符串是否都是空

StringUtils.isAllEmpty(null,"") = true

StringUtils.isAllLowerCase

判断字符串每个字符是否都是小写

StringUtils.isAllLowerCase("abc") = true
StringUtils.isAllLowerCase("abC") = false

StringUtils.isAllUpperCase

判断字符串的每个字符是否都是大写

StringUtils.isAllUpperCase("ABC") = true
StringUtils.isAllUpperCase("ABc") = false

StringUtils.isAlpha

判断字符串是否是字母(没有数字和特殊符号)

StringUtils.isAlphanumeric

判断字符串是否是字母和数字

StringUtils.isAlphanumericSpace

判读字符串是否是字母数字以及空白

StringUtils.isAlphaSpace

判读字符串是否是字母和空白

StringUtils.isAnyBlank

判断一组字符串中是否存在空白字符串

StringUtils.isAnyBlank("abc","123", " ") = true
StringUtils.isAnyBlank("abc","123") = false

StringUtils.isAnyEmpty

判断一组字符串中是否存在空字符串
StringUtils.isAnyEmpty("abc","123", "") = true
StringUtils.isAnyEmpty("abc","123", null) = true
StringUtils.isAnyEmpty("abc","123") = false

StringUtils.isAsciiPrintable

判断字符串中是否自有可打印的ascii码字符串

StringUtils.isAsciiPrintable("abc123") = true
StringUtils.isAsciiPrintable("abc123\n") = false ,换行符无法打印,所以结果为假

StringUtils.isMixedCase

字符串是否混合大小写

StringUtils.isNoneBlank

一组字符串中是否没有空白
StringUtils.isNoneBlank("123","abc"," ") = false
StringUtils.isNoneBlank("123","abc") = true

StringUtils.isNoneEmpty

一组字符串中是否没有空
StringUtils.isNoneBlank("123","abc","") = false
StringUtils.isNoneBlank("123","abc") = true

StringUtils.isNotBlank

是否不是空白字符串

StringUtils.isNotEmpty

是否不是空字符串

StringUtils.isNumeric

字符串是否是数字

StringUtils.isNumericSpace

字符串是否是数字和空格

StringUtils.isWhitespace

字符串是否是空白,不包括null
StringUtils.isWhitespace(null) = false
StringUtils.isWhitespace("") = true
StringUtils.isWhitespace(" ") = true
StringUtils.isWhitespace("abc") =false

StringUtils.join

功能同jdk自带String.join,只是它有针对其他各种类型重载,而String.join只支持字符串类型

StringUtils.lastIndexOf

搜索的字符串最后一次在被搜索字符串中出现的位置

StringUtils.lastIndexOf("abcc","c") = 3;

StringUtils.indexOf("abcc","c")=2

StringUtils.lastIndexOfAny

任意一个字符串在被搜索字符串中出现的位置

StringUtils.lastIndexOfAny("abcc","a","b","c","d","d") = 3

StringUtils.lastIndexOfIgnoreCase

StringUtils.lastIndexOf的忽略大小写版本

StringUtils.lastOrdinalIndexOf

从后往前匹配,第N次出现被匹配字符串的位置,N为方法的第三个参数

StringUtils.lastOrdinalIndexOf("abcabcabc","c",1) = 8
StringUtils.lastOrdinalIndexOf("abcabcabc","c",2 = 5
StringUtils.lastOrdinalIndexOf("abcabcabc","c",3) = 3
StringUtils.lastOrdinalIndexOf("abcabcabc","c",4) = -1
StringUtils.lastOrdinalIndexOf("abcabcabc","c",0) = -1

StringUtils.left

截取字符串左侧指定长度的字符串

StringUtils.left("abc123",3) = 3

StringUtils.length

获得字符串长度

StringUtils.lowerCase

将字符串中字母转换成小写

StringUtils.mid

截取字符串某一部分

StringUtils.mid("abc123",2,3) = c12


StringUtils.normalizeSpace

去除字符串中多余的空白符,只保留一个

StringUtils.normalizeSpace("abc 1 2 3") = abc 1 2 3

StringUtils.ordinalIndexOf

从前往后匹配,第N次出现被匹配字符串的位置,N为方法的第三个参数

StringUtils.ordinalIndexOf("abcabcabc","c",1) = 2
StringUtils.ordinalIndexOf("abcabcabc","c",2) = 5
StringUtils.ordinalIndexOf("abcabcabc","c",3) = 8
StringUtils.ordinalIndexOf("abcabcabc","c",4) = -1
StringUtils.ordinalIndexOf("abcabcabc","c",0) = -1


StringUtils.overlay

覆盖字符串中指定位置的子串

StringUtils.overlay("abcabcabc","123",1,2) =a123cabcabc


StringUtils.prependIfMissing

如果字符串未出现指定的前缀,则追加前缀,否则返回原字符串

("abc","123") = 123abc
StringUtils.prependIfMissing("abc","ab") = abc


此方法还有一个重载版本

prependIfMissing(final String str, final CharSequence suffix, final CharSequence... suffixes)

前缀可以指定多个,如果字符串的前缀在所有指定的前缀中未出现,则追加第一个前缀,否则返回原字符串

StringUtils.prependIfMissing("abc123","123","abc","bc") = abc123
StringUtils.prependIfMissing("abc123","123","c","bc")=123abc123


StringUtils.prependIfMissingIgnoreCase


StringUtils.prependIfMissing的忽略大小写版本

StringUtils.remove

删除字符串的某一部分

StringUtils.remove("abc123","123") = abc


StringUtils.removeEnd

删除字符串结尾部分子串

StringUtils.removeEnd("123abc","abc") = 123

StringUtils.removeEndIgnoreCase

StringUtils.removeEnd的忽略大小写版本


StringUtils.removeIgnoreCase

StringUtils.remove的忽略大小写版本

StringUtils.removeStart

删除字符串开头部分子串

StringUtils.removeStart("abc123","abc") = 123

StringUtils.removeStartIgnoreCase

StringUtils.removeStart的忽略大小写部分

StringUtils.repeat

重复字符串

StringUtils.repeat("abc",5) = abcabcabcabcabc


StringUtils.replace

搜索替换字符串

StringUtils.replace("abc123","abc","123") = 123123

其中有两个重载版本可以设定替换的次数和是否忽略大小写

String replace(final String text, final String searchString, final String replacement, final int max)
String replace(final String text, String searchString, final String replacement, int max, final boolean ignoreCase)


StringUtils.replaceChars

StringUtils.replace的单字符版本

StringUtils.replaceEach

批量替换,被替换元素个数必须等于替换的元素个数

StringUtils.replaceEach("abc123",new String[]{"a","b","c"},new String[]{"d","e","f"}) = def123

StringUtils.replaceEachRepeatedly

对替换的结果再次执行替换

比如

StringUtils.replaceEach("abc123",new String[]{"abc","123"},new String[]{"123","1"}) = 1231

但是出来的结果还是符合替换要求,因此还要再次执行替换操作,这个时候就可以使用StringUtils.replaceEachRepeatedly,它会重复执行替换操作,直到结果不满足替换条件为止。如果替换操作是个死循环,此方法会抛出异常

StringUtils.replaceEachRepeatedly("abc123",new String[]{"abc","123"},new String[]{"123","1"}) = 11


StringUtils.replaceIgnoreCase

StringUtils.replace的忽略大小写版本


StringUtils.replaceOnce

只替换一次

StringUtils.replaceOnce("aaa","a","b") = baa


StringUtils.replaceOnceIgnoreCase

StringUtils.replaceOnce的忽略大小写版本

StringUtils.reverse

反转字符串 StringUtils.reverse("abc") = cba


StringUtils.reverseDelimited

以分隔符分割出来的元素为单位进行反转

StringUtils.reverse("a,b,cd") = dc,b,a
StringUtils.reverseDelimited("a,b,cd",',') = cd,b,a


StringUtils.right

从字符串右边截取指定长度的子字符串

StringUtils.right("abc",2) = bc

StringUtils.rotate

将字符串最后的一个字符提前

StringUtils.rotate("abc",1) = cab
StringUtils.rotate("abc",2) = bca
StringUtils.rotate("abc",3) = abc

StringUtils.splitByCharacterType

按字符类型对字符串进行分割,字母归字母,数字归数字,特殊字符归特殊字符

StringUtils.splitByCharacterType("ABCabc123#$%你好") = [ABC, abc, 123, #, $, %, 你好]


StringUtils.splitByCharacterTypeCamelCase

按字符类型对字符串进行分割,但是是带驼峰的

StringUtils.splitByCharacterTypeCamelCase("ABCabc123#$%你好") = [AB, Cabc, 123, #, $, %, 你好]


StringUtils.splitByWholeSeparator

分割结果会忽略中间的空字符,保留尾部的空字符

StringUtils.splitByWholeSeparator("a,b,c,,d,e,",",") = [a, b, c, d, e, ]

StringUtils.splitByWholeSeparatorPreserveAllTokens

StringUtils.splitByWholeSeparatorPreserveAllTokens("a,b,c,,d,e,",",") =[a, b, c, , d, e, ]

分割结果既保留中间的空字符,也保留结尾的空字符


StringUtils.splitPreserveAllTokens

作用似乎与StringUtils.splitByWholeSeparatorPreserveAllTokens一样(不确定)

StringUtils.startsWith

字符串是否有指定的前缀

StringUtils.startsWith("abc","ab") = true
StringUtils.startsWith("abc","ac") = false

StringUtils.startsWithAny

字符串前缀是否是指定的多个前缀中的其中一个

StringUtils.startsWithAny("abc","ac","be","a") = true

StringUtils.startsWithIgnoreCase

StringUtils.startsWith的忽略大小写版本

StringUtils.strip

去除字符串两边的字符串,要去除的字符串可自己设定

StringUtils.strip("[abc]","[]") = abc

StringUtils.stripStart

去除字符串左边的字符串

StringUtils.stripStart("[abc]","[]") = abc]

StringUtils.stripEnd

去除字符串右边的字符串

StringUtils.stripEnd("[abc]","[]") = [abc


StringUtils.stripAccents

替换字符串中的音调字符

StringUtils.stripAccents("ààà") = aaa

StringUtils.stripAll


批量去除两侧指定的字符串

StringUtils.stripAll(new String[]{"[aaa]","[bbb]"},"[]") = [aaa, bbb]


StringUtils.stripToEmpty

如果传入的参数为null,则返回空字符,其余功能和strip一致

StringUtils.stripToNull

无论是传入空字符还是null,统一返回null,其余功能和strip一致

StringUtils.substring

截取字符串指定位置的部分

StringUtils.substringAfter

获取分隔符的之后部分的字符串

StringUtils.substringAfter("aa,cc,dd",",") = cc,dd

StringUtils.substringAfterLast

获取最后一个分隔符之后的字符串

StringUtils.substringAfterLast("aa,cc,dd",",") = dd


StringUtils.substringBefore

获取分隔符的之前部分的字符串

StringUtils.substringBeforeLast

获取最后一个分隔符之前部分的字符串

StringUtils.substringBeforeLast("aa,cc,dd",",") = aa,cc


StringUtils.substringBetween

获得两个分隔符中间方部分字符串

StringUtils.substringBetween("aa,bb,cc,dd","aa","dd") = ,bb,cc,


StringUtils.swapCase

将字符串中小写字符转换成大写,大写字符串转换成小写

StringUtils.swapCase("AbCdEfG") = aBcDeFg


StringUtils.toCodePoints

将字符串的每个字符转换成10进制的unicode码

StringUtils.toCodePoints("AbCdEfG我") = [65,98,67,100,69,102,71,25105]


StringUtils.toEncodedString

建字节数字转换成字符串

StringUtils.toEncodedString("abc你好".getBytes("gbk"), Charset.forName("gbk")) = abc你好

StringUtils.toRootLowerCase

将字符串转换成根语言环境的小写状态

StringUtils.toRootUpperCase

将字符串转换成根语言环境的大写状态

StringUtils.trim

去除字符串两边的空白

StringUtils.trimToEmpty

去除字符串两边的空白,如果字符串为null,则返回空字符

StringUtils.trimToNull

去除字符串两边的空白,如果字符串为空字符和null,则返回null


StringUtils.truncate

截取字符串

StringUtils.truncate("12345",3) = 123
StringUtils.truncate("12345",2,3) = 345

StringUtils.uncapitalize

首字母小写

StringUtils.uncapitalize("X123ABC") = x123ABC

StringUtils.unwrap

去除字符串两边的字符

StringUtils.unwrap("|abc123|",'|') = abc123

StringUtils.unwrap("||abc123||","||") = abc123


StringUtils.upperCase

大写转换

StringUtils.wrap

有指定字符串填充字符串两边

StringUtils.wrap("abc","#") = #abc#

StringUtils.wrapIfMissing

如果指定的字符串不存在,则用这个字符串填充字符串的两边

StringUtils.wrapIfMissing("#abc","#") = #abc#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值