1、commons-lang3
org.apache.commons.lang3.StringUtils
public static boolean isEmpty(final CharSequence cs) {
return cs == null || cs.length() == 0;
}
public static boolean isBlank(final CharSequence cs) {
final int strLen = length(cs);
if (strLen == 0) {
return true;
}
for (int i = 0; i < strLen; i++) {
if (!Character.isWhitespace(cs.charAt(i))) {
return false;
}
}
return true;
}
2、spring-core
org.springframework.util.StringUtils
//判断是否为空
public static boolean isEmpty(Object str) {
return (str == null || "".equals(str));
}
//判断是否由内容
public static boolean hasText(String str) {
return (str != null && str.length() > 0 && containsText(str));
}
上面两个第三方工具类的中isEmpty()方法判断是否为空,但是会有问题:如果其中存在" "这种字符串的时候,空白字符串是会认为不是空(业务代码中基本上都会把空白字符串处理成空,除非有非常特殊情况)。
isBlank()判断是否为空,处理了" "这种场景。所以如果项目中使用的是org.apache.commons.lang3.StringUtils时,建议使用isBlank()方法。
hasText()方法是判断是否存在内容,也处理了" "这种字符串,但是需要注意hasText()方法的返回值和isBlank()方法返回值是相反的。
3、 isEmpty() 和 isBlank() 比较
import org.apache.commons.lang3.StringUtils;
public class StringUtilDemo {
public static void main(String[] args) {
String valueA= "";
String valueB= " ";
System.out.println(StringUtils.isEmpty(valueA));
System.out.println(StringUtils.isEmpty(valueB));
System.out.println(StringUtils.isBlank(valueA));
System.out.println(StringUtils.isBlank(valueB));
}
}
输出
true
false
true
true
4、 isEmpty() 和 hasText() 比较
import org.springframework.util.StringUtils;
public class StringUtilDemo {
public static void main(String[] args) {
String valueA= "";
String valueB= " ";
System.out.println(StringUtils.isEmpty(valueA));
System.out.println(StringUtils.isEmpty(valueB));
System.out.println(StringUtils.hasText(valueA));
System.out.println(StringUtils.hasText(valueB));
}
}
输出
true
false
false
false
希望能够对您有所帮助!