天天看點

StringUtils裡面的 isEmpty方法和isBlank方法的差別

寫在前面: 我是「揚帆向海」,這個昵稱來源于我的名字以及女朋友的名字。我熱愛技術、熱愛開源、熱愛程式設計。

技術是開源的、知識是共享的

這部落格是對自己學習的一點點總結及記錄,如果您對 Java、算法 感興趣,可以關注我的動态,我們一起學習。

用知識改變命運,讓我們的家人過上更好的生活

文章目錄

        • 1、isEmpty() 方法
        • 2、isBlank()方法
        • 3、總結

1、isEmpty() 方法

源碼:

StringUtils裡面的 isEmpty方法和isBlank方法的差別
public static boolean isEmpty(String str) {
		// 判斷字元串是否為空或長度為0
        return str == null || str.length() == 0;
    
           

isEmpty 是判斷某個字元串是否為空,判斷的标準是

str == null || str.length() == 0

測試:

public class TestStringUtils {

    public static void main(String[] args) {

        System.out.println(StringUtils.isEmpty(null)); // true
        System.out.println(StringUtils.isEmpty("")); // true
        System.out.println(StringUtils.isEmpty(" ")); // false
        System.out.println(StringUtils.isEmpty("\t")); // false
        System.out.println(StringUtils.isEmpty("揚帆向海")); // false
        System.out.println(StringUtils.isEmpty(" 揚帆向海 ")); // false

    }
}

           

2、isBlank()方法

源碼:

StringUtils裡面的 isEmpty方法和isBlank方法的差別
public static boolean isBlank(String str) {
        int strLen;
        // 判斷字元串是否為空或長度為是否為0
        if (str != null && (strLen = str.length()) != 0) {
        	// 如果字元串不為空,且長度不為0,進行循環周遊
            for(int i = 0; i < strLen; ++i) {
            	// 如果字元串指定位置的值不為空白字元,傳回false;否則傳回true
                if (!Character.isWhitespace(str.charAt(i))) {
                    return false;
                }
            }

            return true;
        } else {
            return true;
        }
    }
           

isBlank 是判斷

字元串是否為空或長度為0 或者是由空白符構成

測試:

public class TestStringUtils {

    public static void main(String[] args) {
    
        System.out.println(StringUtils.isBlank(null)); // true
        System.out.println(StringUtils.isBlank("")); // true
        System.out.println(StringUtils.isBlank(" ")); // true
        System.out.println(StringUtils.isBlank("\t")); // true
        System.out.println(StringUtils.isBlank("揚帆向海")); // false
        System.out.println(StringUtils.isBlank(" 揚帆向海 ")); // false
    
    }
}

           

3、總結

  • isEmpty

    ()方法沒有忽略空格,是以是否為空和是否存在為判斷依據;
  • isBlank

    ()方法增加了字元串為空格、制表符的判斷。即isBlank()的判斷範圍更大,它在isEmpty()方法的基礎上,包括了空字元的判斷。在實際開發中,isBlank()方法更加常用。

由于水準有限,本部落格難免有不足,懇請各位大佬不吝賜教!