这边首先以一个简单的测试代码来解释这两者的区别:
@Test void stringTest(){
String a = " "; boolean empty = StringUtils.isEmpty(a); boolean blank = StringUtils.isBlank(a); System.out.println(empty);//false System.out.println(blank);//true }
由此可以看出“空格”使用isEmpty结果是false,而使用isBlank时结果是true。
再截取源码来看看:
public static boolean isEmpty(CharSequence cs) { return cs == null || cs.length() == 0; }
public static boolean isBlank(CharSequence cs) { int strLen; if (cs != null && (strLen = cs.length()) != 0) { for(int i = 0; i < strLen; ++i) {
// 判断字符是否为空格、制表符、tab if (!Character.isWhitespace(cs.charAt(i))) { return false; } } return true; } else { return true; } }
综上:isBlank 是在 isEmpty 的基础上进行了为空(字符串都为空格、制表符、tab 的情况)的判断。(一般更为常用)
StringUtils里的isEmpty和isBlank的区别
原文:https://www.cnblogs.com/Yale-L/p/11775947.html