StringUtils.isBlank(str)和StringUtils.isEmpty(str)的區別

1.StringUtils.isEmpty(CharSequence cs)實現源碼

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

從源碼發現StringUtils.isEmpty(CharSequence cs)是判斷了cs爲null或cs.length()=0,可是咱們要判斷空白字符或者換行符等特殊的轉義字符時,它的長度都是大於0的,因此用isEmpty判斷是不行的測試

2.StringUtils.isBlank(CharSequence cs)實現源碼

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

    從上能夠發現,StringUtils.isBlank方法中比isEmpty多判斷了空白字符即方法Character.isWhitespace    空白符有:空格、tab 鍵\n、換行符\t、回車符 \r 、換頁符 \fspa

        

測試代碼:code

    public static void main(String[] args) {
        //isWhitespace() 方法用於判斷指定字符是否爲空白字符,空白符包含:空格、tab 鍵、換行符。
        System.out.println(Character.isWhitespace('c'));
        System.out.println(Character.isWhitespace(' '));
        System.out.println(Character.isWhitespace('\n'));
        System.out.println(Character.isWhitespace('\t'));
        
        String str = "c";
        String str1 = "";
        String str2 = " ";
        String str3 = "\n";
        String str4 = "\t";
        System.out.println("is blank:" + StringUtils.isBlank(str3));
        System.out.println("is empty:" + StringUtils.isEmpty(str3));
    }
false
true
true
true
is blank:true
is empty:false

 

3.結論

   若要過濾掉空白符用StringUtils.isBlank方法,若僅僅是判斷字符是否爲null或長度是否爲0則用StringUtils.isEmptyblog

相關文章
相關標籤/搜索