48个StringUtils常用方法总结(全面)

48个StringUtils常用方法总结(全面)-mikechen

1、空字符串检查

public static boolean isEmpty(String str);
public static boolean isNotEmpty(String str);

上面两个方法是判断字符串是否为”“或者null。

public static boolean isBlank(String str);
public static boolean isNotBlank(String str);

这两个方法可以判断空字符串如” “同时也可以判断是否为”“或者null

2、清除空白字符

StringUtils.trimToNull(str);

函数介绍:清除掉str首尾的空白字符,如果仅str全由空白字符组成则返回null。

注意:函数StringUtils.trim(str)

StringUtils.trimToNull(str)功能类似,但str由空白字符

组成时返回零长度字符串。

3、查找嵌套字符串

StringUtils.substringBetween(str,header,tail);

在str中取得header和tail之间的字符串。不存在则返回空.

4、取得字符串的缩写

StringUtils.abbreviate(str,width);

StringUtils.abbreviate(str,offset,width);

在给定的width内取得str的缩写,当testString的长度小于width则返回原字符串.

注意:width参数至少为4(包括…)

 String test = "This is a test of the abbreviation.";
 String test2 = "Test";
 System.out.println( StringUtils.abbreviate( test, 15 ) );
 System.out.println( StringUtils.abbreviate( test, 5,15 ) );
 System.out.println( StringUtils.abbreviate( test2, 10 ) );

输出如下:

This is a te…

…is a test…

Test

5、去除尾部换行符

StringUtils.chomp(str)

去除str尾部的换行符\n

6、重复字符串

StringUtils.repeat(str,count)

得到将str重复count次后的字符串

 System.out.println( StringUtils.repeat( "*", 10));
 System.out.println( StringUtils.repeat( "China ", 5));

输出如下:

**********

China China China China China

StringUtils.center( str, count,repeatString );

把str插入将repeatString重复多次后的字符串中间,得到字符串

的总长为count

 System.out.println( StringUtils.center( "China", 11,"*"));

输出如下:

***China***

static String center(String str, int size);

默认以空格填充

public static String leftPad(String str,int size);

左侧空格填充

public static String leftPad(String str,int size,String padStr);

左侧字符串填充

public static String rightPad(String str,int size);

左侧空格填充

public static String rightPad(String str,int size,String padStr)

左侧字符串填充

7、颠倒字符串

StringUtils.reverse(str)

得到str中字符颠倒后的字符串

 System.out.println( StringUtils.reverse("ABCDE"));

输出如下:

EDCBA

8、判断字符串内容的类型

StringUtils.isNumeric( str);

如果str全由数字组成返回True.

StringUtils.isAlpha( str);

如果str全由字母组成返回True.

StringUtils.isAlphanumeric( str);

如果str全由数字或数字组成返回True.

StringUtils.isAlphaspace( str);

如果str全由字母或空格组成返回True.

StringUtils.isAlphanumericSpace(String str);

只由字母数字和空格组成

StringUtils.isNumericSpace(String str);

只由数字和空格组成

9、取得某字符串在另一字符串中出现的次数

StringUtils.countMatches(str,seqString);

取得seqString在str中出现的次数,未发现则返回零

 System.out.println(StringUtils.countMatches( "Chinese People", "e"));

输出:

4

10、部分截取字符串

StringUtils.substringBetween(testString,fromString,toString ):

取得两字符之间的字符串

StringUtils.substringAfter(str,seqStr ):

取得指定字符串后的字符串

StringUtils.substringBefore(str,seqStr ):

取得指定字符串之前的字符串

StringUtils.substringBeforeLast( str,seqStr ):

取得最后一个指定字符串之前的字符串

StringUtils.substringAfterLast(str,seqStr ):

取得最后一个指定字符串之后的字符串

String formatted = " 25 * (30,40) [50,60] | 30";
 System.out.print("N0: " + StringUtils.substringBeforeLast( formatted, "*" ) );
 System.out.print(", N1: " + StringUtils.substringBetween( formatted, "(", "," ) );
 System.out.print(", N2: " + StringUtils.substringBetween( formatted, ",", ")" ) );
 System.out.print(", N3: " + StringUtils.substringBetween( formatted, "[", "," ) );
 System.out.print(", N4: " + StringUtils.substringBetween( formatted, ",", "]" ) );
 System.out.print(", N5: " + StringUtils.substringAfterLast( formatted, "|" ) );

输出:

N0: 25 , N1: 30, N2: 40, N3: 50, N4: 40) [50,60, N5: 30

11、首字母大写

StringUtils.capitalize(String str); 首字母大写

StringUtils.uncapitalize(String str);首字母小写

12、 是否全是大写,是否全是小写

StringUtils.isAllUpperCase(String str);

StringUtils.isAllLowerCase(String str);

13、大小写转换,空格不动

StringUtils.swapCase(String str);

StringUtils.swapCase(“I am a-A*a”)

返回结果:i AM A-a*A

14、数组转成字符串

StringUtil.convString(String str);

默认以逗号分隔

StringUtil.converString(String str, String conv) ;

用conv分隔

String[3] s={“a”,”b”,”c”}

StringUtil.convString(s)=”a,b,c”

String[3] s={“a”,”b”,”c”}

StringUtil.convString(s,”@”)=”a@b@c”

 

15.StringUtils方法总结

1.isEmpty:是否为空,为null的返回false,对于空格返回的是false。

2.isNotEmpty:是否为非空,不可用于空格字符串。

3.isBlank:是否为空,空格字符串为true。

4.isNotBlank:是否非空,空格为false。

5.trim:去掉字符串两端的空格。

6.trimToEmpty:去除字符串两端的不可见字符,空字符串。

7.stripToNull:去除字符串两端的空白符,空字符串

8.stripToEmpty(String str) 去除字符串两端的空白符,空字符串、null 返回””

9.strip(String str, String stripChars) 去掉str两端的在stripChars中的字符

10.StringUtils.strip(“000000134_76539000″,”0″)=”134_76539”

11.stripStart (String str,String stripChars) 去除str 前端在stripChars中的字符

12.stripEnd (String str,String stripChars) 去除str 后端在stripChars中的字符

13.equals(String str1,String str2) 比较两个字符串是否相等,如果两个均为空则认为相等

14.indexOf(String str,char searchChar) 返回searchChar 在字符串中第一次出现的位置,如果没找到则返回 -1,如果str 为null 或者 “”,也返回-1

15.indexOf(String str,char searchChar,int startPos) 返回字符searchChar从startPos开始在字符串str中第一次出现的位置。

16.contains(String str,char searchChar) str中是否包含字符searchChar,str为null 或者 searchChar为null,返回false 。

17.StringUtils.contains(“”, “”)  = true

18.StringUtils.contains(“dfg”, “”)  = true

19.containsIgnoreCase(String str,String searchStr) str中是否包含字符searchChar,不区分大小写

20.int indexOfAny(String str, char[] searchChars) 找出字符数组searchChars中的字符第一次出现在字符串str中的位置。如果字符数组中的字符都不在字符串中,则返回-1 ,如果字符串为null或””,则返回-1

21.subString(String str,int start) 从start 开始,包含start 那个字符,得到字符串str 的子串,如果start为负数,则从后面开始数起。如果str 为null 或者 “” 则返回其本身

22.subStringBefore(String str,String separator) 得到字符串separator第一次出现前的子串。不包含那个字符,如果str 为null 或者 “” 则返回其本身。

23.subStringAfter(String str,String separator) 得到字符串separator第一次出现后的子串,不包含那个字符,如果 str 为null,或者””,则返回其本身

24.subString(String str,int start,int end) 同上

25.left(String str,int len) 得到字符串str从左边数len长度的子串,如果str 为null 或者 “”,则返回其本身,如果len小于0,则返回””

26.right(String str,int len)得到字符串str从右边数len长度的子串

27.mid(String str,int pos,int len) 得到字符串str从pos开始len长度的子串,pos小于0,则设为0。

28.split(String str) 把字符串拆分成一个字符串数组,用空白符 作为分隔符,字符串为null 返回null,字符串为””,返回空数组{}

29.split(String str,char c) 按照 char c 拆分字符串

30.join(Object[] arrey)把数组中的元素连接成一个字符串返回

31.join(Object[] arrey,char c) 把数组中的元素拼接成一个字符串返回,把分隔符 c 也带上

32.deleteWhitespace(String str) 删除字符串中的所有空白符,包括转义字符

33.removeStart(String str,String remove) 如果字符串str是以remove开始,则去掉这个开始,然后返回,否则返回原来的串

34.removeEnd(String str,String remove) 如果字符串str是以字符串remove结尾,则去掉这个结尾,然后返回,否则返回原来的串。

35.remove(String str,char remove) 去掉字符串str中所有包含remove的部分,然后返回

36.replace(String str,String reql,String with) 在字符串text中用with代替repl,替换所有

37.replaceChars(String str,char old,char new) 在字符串中 new 字符代替 old 字符

38.public static String replaceChars(String str, String searchChars, String replaceChars)

39.StringUtils.replaceChars(“asssdf”,”s”,”yyy”))    =    “ayyydf”

40.StringUtils.replaceChars(“asdf”,”sd”,”y”))        = “ayf”

41.StringUtils.replaceChars(“assssddddf”,”sd”,”y”))= “ayyyyf”

42.overlay(String str,String new,int start,int end) 用字符串new 覆盖字符串str从start 到 end 之间的串

43.chop(String str) 去掉字符串的最后一个字符,比如/r/n

44.repeat(String str,int repart) 重复字符串repeat次

45.rightPad(String str,int size,String padStr) size长度的字符串,如果不够用padStr补齐

46.leftPad(String str,int size,String padStr)同上

47.center(String str,int size)产生一个字符串,长度等于size,str位于新串的中心

48.swapCase(String str) 字符串中的大写转小写,小写转换为大写

作者简介

陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

👇阅读更多mikechen架构文章👇

阿里架构 |双11秒杀 |分布式架构 |负载均衡 |单点登录 |微服务 |云原生 |高并发 |架构师

以上

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法