StringUtils里的方法

一、StringUtils里的isEmpty方法和isBlank方法的区别:

①isEmpty()
public static boolean isEmpty(String str) {
return str == null || str.length() == 0;
}
②isBlank()
public static boolean isBlank(String str) {
int strLen;
if (str != null && (strLen = str.length()) != 0) {
for(int i = 0; i < strLen; ++i) {
// 判断字符是否为空格、制表符、tab
if (!Character.isWhitespace(str.charAt(i))) {
return false;
}
}
return true;
} else {
return true;
}
}

StringUtils.isEmpty("yyy") = false
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false

StringUtils.isBlank("yyy") = false
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
所以:
1.isEmpty 没有忽略空格参数,是以是否为空和是否存在为判断依据。
2.isBlank 是在 isEmpty 的基础上进行了为空(字符串都为空格、制表符、tab 的情况)的判断。(一般更为常用)
还有:
1、public static boolean isNotEmpty(String str);
2、public static boolean isNotBlank(String str);
这两个方法可以判断空字符串如” “同时也可以判断是否为”“或者null

二:清除空白字符
StringUtils.trimToNull(str);
函数介绍:清除掉str首尾的空白字符,如果仅str全由空白字符组成则返回null。
注意:函数StringUtils.trim(str)与
StringUtils.trimToNull(str)功能类似,但str由空白字符
组成时返回零长度字符串。

三、 关于StringUtils.EMPTY和toString字符串转换!
平时我们在处理字符串转换的时候,很习惯的就是.toString,但是后来发现,toString这个方法实在是有点坑,除非在你知道处理数据类型一定不存在空的情况下使用,不然就会报空指针,所以当我发现StringUtils下面有一个StringUtils.EMPTY时候就就可以完全抛弃toString了!

public static final String EMPTY=" ";

public String toString(){
return getClass().getName()+"0"+Integer.toHexString(hashCode());
}
StringUtils.EMPTY会方便很多

四、查找嵌套字符串

StringUtils.substringBetween(str,header,tail);
在str中取得header和tail之间的字符串。不存在则返回空.

五、取得字符串的缩写
StringUtils.abbreviate(str,width);
StringUtils.abbreviate(str,offset,width);
在给定的width内取得str的缩写,当testString的长度小于width则返回原字符串.
注意:width参数至少为4(包括…)
1 String test = "This is a test of the abbreviation.";
2 String test2 = "Test";
3 System.out.println( StringUtils.abbreviate( test, 15 ) );
4 System.out.println( StringUtils.abbreviate( test, 5,15 ) );
5 System.out.println( StringUtils.abbreviate( test2, 10 ) );
输出如下:
This is a te…
…is a test…
Test

六、去除尾部换行符
StringUtils.chomp(str)
去除str尾部的换行符\n

七、重复字符串
StringUtils.repeat(str,count)
得到将str重复count次后的字符串
1 System.out.println( StringUtils.repeat( "*", 10));
2 System.out.println( StringUtils.repeat( "China ", 5));
输出如下:


China China China China China

StringUtils.center( str, count,repeatString );
把str插入将repeatString重复多次后的字符串中间,得到字符串
的总长为count
1 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)
左侧字符串填充

八、颠倒字符串
StringUtils.reverse(str)
得到str中字符颠倒后的字符串
1 System.out.println( StringUtils.reverse("ABCDE"));
输出如下:
EDCBA

九、判断字符串内容的类型
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);
只由数字和空格组成

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

StringUtils.countMatches(str,seqString);
取得seqString在str中出现的次数,未发现则返回零

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

输出:
4

十一、部分截取字符串

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";
1 System.out.print("N0: " + StringUtils.substringBeforeLast( formatted, "*" ) );
2 System.out.print(", N1: " + StringUtils.substringBetween( formatted, "(", "," ) );
3 System.out.print(", N2: " + StringUtils.substringBetween( formatted, ",", ")" ) );
4 System.out.print(", N3: " + StringUtils.substringBetween( formatted, "[", "," ) );
5 System.out.print(", N4: " + StringUtils.substringBetween( formatted, ",", "]" ) );
6 System.out.print(", N5: " + StringUtils.substringAfterLast( formatted, "|" ) );
输出:
N0: 25 , N1: 30, N2: 40, N3: 50, N4: 40) [50,60, N5: 30

十二、首字母大写

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

十三、 是否全是大写,是否全是小写

StringUtils.isAllUpperCase(String str);
StringUtils.isAllLowerCase(String str);

十四、大小写转换,空格不动

StringUtils.swapCase(String str);

StringUtils.swapCase(“I am a-Aa”)
返回结果:i AM A-a
A

十五、数组转成字符串

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”

你可能感兴趣的:(StringUtils里的方法)