在org.apache.commons.lang3.StringUtils有两个我们常用的用于字符串空判断的方法isBlank()和isEmpty(),他两个有什么区别的
先看两个方法的实现对比
public static boolean isBlank(final CharSequence cs) { int strLen; if (cs == null || (strLen = cs.length()) == 0) { return true; } for (int i = 0; i < strLen; i++) { if (Character.isWhitespace(cs.charAt(i)) == false) { return false; } } return true; }
public static boolean isEmpty(final CharSequence cs) { return cs == null || cs.length() == 0; }
1)当字符串为null或者字符串长度为空时,两个方法返回为true。这点两者一致;
2)当字符串中包含多于一个的空格时,isEmpty()由于未对空格判断,所以返回为false;isEmpty()返回为true;
public static void main(String[] agrs){ System.out.println(StringUtils.isBlank(" ")); System.out.println(StringUtils.isEmpty(" ")); }
执行结果
true false