isNotEmpty() 和 isNotBlank() 的区别,字符串判空, StringUtils工具包 StringUtil工具类,isEmpty() 和 isBlank() 的区别

1.StringUtils 和 StringUtil

注:StringUtils 和 StringUtil 的区别(StringUtil为自定义工具类)

方法\工具类StringUtilsStringUtil
.isEmpty()成立成立
.isNotEmpty()成立不成立
.isBlank()成立不成立

StringUtils 的依赖:

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

StringUtils 的用法:

import org.apache.commons.lang3.StringUtils;

public class main {

    public static void main(String[] args) {
        String scheme = "";
        System.out.println(StringUtils.isBlank(scheme));    //true
        System.out.println(StringUtils.isEmpty(scheme));    //true
        System.out.println(StringUtils.isNotBlank(scheme)); //false
        System.out.println(StringUtils.isNotEmpty(scheme)); //false
    }
}

StringUtil 工具类

package com.ectit.utils;

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 字符串格式化
 * </p>
 *
 * @author exsun
 * @since 2021-11-10
 */
@Slf4j
@Component
public class StringUtil {
    private StringUtil() {
    }

    public static boolean isEmpty(Object aObj) {
        if (aObj instanceof String) {
            return isEmpty((String) aObj);
        } else if (aObj instanceof Long) {
            return isEmpty((Long) aObj);
        } else if (aObj instanceof java.util.Date) {
            return isEmpty((java.util.Date) aObj);
        } else if (aObj instanceof Collection) {
            return isEmpty((Collection) aObj);
        } else if (aObj instanceof Map) {
            return isEmpty((Map) aObj);
        } else if (aObj != null && aObj.getClass().isArray()) {
            return isEmptyArray(aObj);
        } else {
            return isNull(aObj);
        }
    }

    private static boolean isEmptyArray(Object array) {
        int length = 0;
        if (array instanceof int[]) {
            length = ((int[]) array).length;
        } else if (array instanceof byte[]) {
            length = ((byte[]) array).length;
        } else if (array instanceof short[]) {
            length = ((short[]) array).length;
        } else if (array instanceof char[]) {
            length = ((char[]) array).length;
        } else if (array instanceof float[]) {
            length = ((float[]) array).length;
        } else if (array instanceof double[]) {
            length = ((double[]) array).length;
        } else if (array instanceof long[]) {
            length = ((long[]) array).length;
        } else if (array instanceof boolean[]) {
            length = ((boolean[]) array).length;
        } else {
            length = ((Object[]) array).length;
        }
        return length == 0;
    }

    public static boolean isEmpty(java.util.Date aDate) {
        return aDate == null;
    }

    public static boolean isEmpty(Long aLong) {
        return aLong == null;
    }

    public static boolean isEmpty(Map m) {
        return m == null || m.size() == 0;
    }

    public static boolean isEmpty(Collection c) {
        return c == null || c.isEmpty();
    }

    public static boolean isEmpty(String aStr) {
        return aStr == null || aStr.trim().isEmpty();
    }

    public static String trim(String aStr) {
        if (aStr == null) {
            return null;
        } else {
            return aStr.trim();
        }
    }

    public static boolean isNull(Object oStr) {
        return oStr == null;
    }

    public static boolean equals(String str1, String str2) {
        return str1 != null ? str1.equals(str2) : str2 == null;
    }

    public static boolean equals(Long l1, Long l2) {
        return l1 != null ? l1.equals(l2) : l2 == null;
    }

    public static boolean equals(Object obj1, Object obj2) {
        boolean result;
        if (obj1 != null) {
            result = obj1.equals(obj2);
        } else {
            result = (obj2 == null);
        }
        return result;
    }

    public static boolean equalsIgnoreCase(String str1, String str2) {
        return str1 != null ? str1.equalsIgnoreCase(str2) : str2 == null;
    }

    public static List<Integer> StringToList(String str) {
        List<Integer> list = new ArrayList<Integer>();
        if (StringUtils.isNotEmpty(str)) {
            String[] a = str.split(",");
            for (String b : a) {
                list.add(Integer.parseInt(b));
            }
        }
        return list;
    }
}

2. isNotEmpty() 和 isNotBlank()

isNotEmpty()isNotBlank()StringUtils 工具包下两个判断字符串是否为空的方法

  • isNotEmpty()
    判断某字符串是否非空
public static void main(String[] args) {
        System.out.println(StringUtils.isNotEmpty(null)); 	// = false;
        System.out.println(StringUtils.isNotEmpty("")); 	// false;
        System.out.println(StringUtils.isNotEmpty(" "));	// true;
        System.out.println(StringUtils.isNotEmpty("the 8"));// true;
        System.out.println(StringUtils.isNotEmpty("\t")); 	// true;
        //回退符\b
        System.out.println(StringUtils.isNotEmpty("\b")); 	// true;
    }
  • isNotBlank()
    判断某字符串是否不为空 且长度不为0 且不由空白符(whitespace)构成,
public static void main(String[] args) {
        System.err.println(StringUtils.isNotBlank(null)); 		// false
        System.err.println(StringUtils.isNotBlank(""));			// false
        System.err.println(StringUtils.isNotBlank(" ")); 		// false
        System.err.println(StringUtils.isNotBlank("\t \n \f \r")); 	// false
        System.out.println(StringUtils.isNotBlank("\t")); 			// false
        //回退符\b
        System.out.println(StringUtils.isNotBlank("\b")); 			// true;
    }

在这里插入图片描述

  • 补充: 回退符 \b
    在这里插入图片描述

  • 区别

StringUtils.isNotEmpty(str) 等价于:
str != null && str.length > 0

StringUtils.isNotBlank(str) 等价于:
str != null && str.length > 0 && str.trim().length > 0
即:判断是否 == null 的同时,还需要判断 length 是否 > 0

原文链接:https://blog.csdn.net/qq_38967583/article/details/109338200

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值