org.apache.commons.lang3包下的StringUtils工具类的使用
前言
相信平时在写项目的时候,一定使用到StringUtils.isEmpty();StringUtils.isBlank();但是你真的了解他们吗?
也许你两个都不知道,也许你除了isEmpty/isNotEmpty/isNotBlank/isBlank外,并不知道还有isAnyEmpty/isNoneEmpty/isAnyBlank/isNoneBlank的存在。
maven对应的包:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.17.0</version>
</dependency>
maven坐标:https://mvnrepository.com/
一、isEmpty()系列
isEmpty():会绕过空值的判断
@Test
public void testStringUtils(){
boolean empty = StringUtils.isEmpty(null);
System.out.println(empty);//true
boolean empty1 = StringUtils.isEmpty("");
System.out.println(empty1);//true
//字符串时空,但是输出的是false
boolean empty2 = StringUtils.isEmpty(" ");
System.out.println(empty2);//false
boolean empty3 = StringUtils.isEmpty("HelloWorld!");
System.out.println(empty3);//false
boolean empty4 = StringUtils.isEmpty(" HelloWorld! ");
System.out.println(empty4);//false
}
源码:
@Deprecated
public static boolean isEmpty(@Nullable Object str) {
return str == null || "".equals(str);
}
@Deprecated注解:标记该方法过时了,在以后得版本中可能会被代替。
isNotEmpty():相当于不为空
public static boolean isNotEmpty(final CharSequence cs) {
return !isEmpty(cs);
}
isAnyEmpty():只要有一个为空,就是true
@Test
public void testStringUtils(){
System.out.println(StringUtils.isAnyEmpty("Hello", "World"));//false
System.out.println(StringUtils.isAnyEmpty(null, "HelloWorld"));//true
System.out.println(StringUtils.isAnyEmpty("", " "));//true
System.out.println(StringUtils.isAnyEmpty(" ", " "));//false
}
源码:
public static boolean isAnyEmpty(final CharSequence... css) {
if (ArrayUtils.isEmpty(css)) {
return true;
}
for (final CharSequence cs : css){
if (isEmpty(cs)) {
return true;
}
}
return false;
}
isNoneEmpty():相当于!isAnyEmpty(css) , 必须所有的值都不为空才返回true
@Test
public void testStringUtils(){
System.out.println(StringUtils.isNoneEmpty("Hello", "World"));//true
System.out.println(StringUtils.isNoneEmpty(null, "HelloWorld"));//false
System.out.println(StringUtils.isNoneEmpty("", " "));//false
System.out.println(StringUtils.isNoneEmpty(" ", " "));//true
}
二、isBank()系列
和isEmpty()基本一样,但是判断" "的时候,结果不一样。
@Test
public void testStringUtils(){
boolean empty2 = StringUtils.isBlank(" ");
System.out.println(empty2);//true
}
三、常用的方法
equals():严格的比较两个字符串是不是相等
@Test
public void testStringUtils(){
System.out.println(StringUtils.equals("HelloWorld", "HelloWorld"));//true
System.out.println(StringUtils.equals("", " "));//false
System.out.println(StringUtils.equals(" HelloWorld ", "HelloWorld"));//false
System.out.println(StringUtils.equals(" ", " "));//false
System.out.println(StringUtils.equals("", ""));//true
System.out.println(StringUtils.equals(" ", " "));//true
System.out.println(StringUtils.equals("",null));//false
System.out.println(StringUtils.equals(" ",null));//false
}