關於StringUtils.isBlank()的使用及說明

StringUtils.isBlank()的使用

在校驗一個String類型的變量是否為空時,可以使用StringUtils.isBlank方法,它可以校驗三種情況:是否為null、是否為""、是否為空字符串(引號中間有空格)" "、制表符、換行符、換頁符和回車。

StringUtils.isBlank(str); 當str不為空時,返回值為false。  

下面是該方法的源碼:

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;
        }
    }

在業務代碼中使用第三方jar的工具類去判斷空,簡化開發且方便閱讀,類似的還有isEmpty()方法。

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

通過源碼可以看出:

1.isEmpty沒有忽略空格參數,是以是否為空和是否存在未判斷依據。

2.isBlank進行瞭為空(字符串為空格、制表符、tab的情況)的判斷。一般比較常用。

大傢可以通過下面的例子進行體會:

StringUtils.isEmpty("yyy") = false
StringUtils.isEmpty("") = true
StringUtils.isEmpty("   ") = false
StringUtils.isBlank("yyy") = false
StringUtils.isBlank("") = true
StringUtils.isBlank("   ") = true

常用的方法,但是時間久瞭會記憶模糊,特作出記錄,高手可以忽略。。。

StringUtils.isBlank和StringUtils.isEmpty的區別和使用

StringUtils.isBlank和StringUtils.isEmpty都是判斷空的方法。

依賴:

<dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.4</version>
        </dependency>

isBlan()的使用

boolean b1 = StringUtils.isBlank(null);
        boolean b2 = StringUtils.isBlank("");
        boolean b3 = StringUtils.isBlank(" ");
        boolean b4 = StringUtils.isBlank("\t");
        boolean b5 = StringUtils.isBlank("\n");
        boolean b6 = StringUtils.isBlank("test");
        System.out.println("判斷null = "+ b1 + '\n' + "判斷\"\" = "+ b2 + '\n'
                 + "判斷空格 = "+ b3 + '\n' + "判斷制表符 = "+ b4 + '\n' + "判斷換行符 = "+ b5
                + '\n' + "判斷字符串 = "+ b6);

isEmpty()的使用

boolean b1 = StringUtils.isEmpty(null);
        boolean b2 = StringUtils.isEmpty("");
        boolean b3 = StringUtils.isEmpty(" ");
        boolean b4 = StringUtils.isEmpty("\t");
        boolean b5 = StringUtils.isBlank("\n");
        boolean b6 = StringUtils.isEmpty("test");
        System.out.println("判斷null = "+ b1 + '\n' + "判斷\"\" = "+ b2 + '\n'
                + "判斷空格 = "+ b3 + '\n' + "判斷制表符 = "+ b4 + '\n' + "判斷換行符 = "+ b5
                + '\n' + "判斷字符串 = "+ b6);

根據上面結果的對比,isBlank()方法和isEmpty方法的區別:

  • isBlank()判斷制表符(\t)和空格時,為true;
  • isEmpty()判斷制表符(\t)和空格時,為false;

兩個判斷null、""、以及換行符(\n或者\r)時為true。

兩者的不同主要是因為:

isBlank()源碼:

isBlank()判斷是否為null和length()為0,還判斷是否是空格、tab鍵、換行符。

isWhitespace() 方法用於判斷指定字符是否為空白字符,空白符包含:空格、tab 鍵、換行符

isEmpty()源碼

isEmpty()隻判斷是否為null和長度為0。

總結

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。 

推薦閱讀: