StringUtils.isBlank(str)和StringUtils.isEmpty(str)的区别
Posted guanbin-529
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了StringUtils.isBlank(str)和StringUtils.isEmpty(str)的区别相关的知识,希望对你有一定的参考价值。
StringUtils.isBlank(str)和StringUtils.isEmpty(str)的区别还是看他们的实现有何不同
1.StringUtils.isEmpty(CharSequence cs)实现源码
public static boolean isEmpty(CharSequence cs) { return cs == null || cs.length() == 0; }
从源码发现StringUtils.isEmpty(CharSequence cs)是判断了cs为null或cs.length()=0,但是我们要判断空白字符或者换行符等特殊的转义字符时,它的长度都是大于0的,所以用isEmpty判断是不行的
2.StringUtils.isBlank(CharSequence cs)实现源码
-
public static boolean isBlank(CharSequence cs) { int strLen; if (cs != null && (strLen = cs.length()) != 0) { for(int i = 0; i < strLen; ++i) { if (!Character.isWhitespace(cs.charAt(i))) { return false; } } return true; } else { return true; } }
从上可以发现,StringUtils.isBlank方法中比isEmpty多判断了空白字符即方法Character.isWhitespace 空白符有:空格、tab 键 、换行符 、回车符 、换页符 f
测试代码:
public static void main(String[] args) { //isWhitespace() 方法用于判断指定字符是否为空白字符,空白符包含:空格、tab 键、换行符。 System.out.println(Character.isWhitespace(‘c‘)); System.out.println(Character.isWhitespace(‘ ‘)); System.out.println(Character.isWhitespace(‘ ‘)); System.out.println(Character.isWhitespace(‘ ‘)); String str = "c"; String str1 = ""; String str2 = " "; String str3 = " "; String str4 = " "; System.out.println("is blank:" + StringUtils.isBlank(str3)); System.out.println("is empty:" + StringUtils.isEmpty(str3)); }
false true true true is blank:true is empty:false
-
3.结论:
-
若要过滤掉空白符用StringUtils.isBlank方法,若仅仅是判断字符是否为null或长度是否为0则用StringUtils.isEmpty
以上是关于StringUtils.isBlank(str)和StringUtils.isEmpty(str)的区别的主要内容,如果未能解决你的问题,请参考以下文章
StringUtils.isEmpty和StringUtils.isBlank用法