StringUtils里的isEmpty和isBlank的区别

这边首先以一个简单的测试代码来解释这两者的区别:

@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。

再截取源码来看看:

isEmpty()

public static boolean isEmpty(CharSequence cs) {
    return cs == null || cs.length() == 0;
}

isBlank()

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 的情况)的判断。(一般更为常用)

posted @ 2019-11-01 11:21  泯夕  阅读(252)  评论(0编辑  收藏  举报