StringUtils.isEmpty

源码

这个方法判断的是字符串是否为null或者其长度是否为零。

  1. public static boolean isEmpty(CharSequence cs) {
  2. return cs == null || cs.length() == 0;
  3. }
  4. public static boolean isNotEmpty(String str) {
  5. return !isEmpty(str);
  6. }

测试效果

  1. package com.fcant.fclink.utils;
  2. import org.apache.commons.lang3.StringUtils;
  3. /**
  4. * TestCheckNull
  5. * <p>
  6. * encoding:UTF-8
  7. *
  8. * @author Fcant 上午 10:12 2020/7/26/0026
  9. */
  10. public class TestCheckNull {
  11. public static void main(String[] args) {
  12. BlankAndEmpty();
  13. }
  14. public static void BlankAndEmpty(){
  15. System.out.println(StringUtils.isEmpty(null));
  16. System.out.println(StringUtils.isEmpty(""));
  17. System.out.println(StringUtils.isEmpty(" "));
  18. System.out.println(StringUtils.isEmpty("\t"));
  19. System.out.println(StringUtils.isEmpty("Fcant"));
  20. }
  21. }

image.png

StringUtils.isBlank

源码

这个方法除了判断字符串是否为null和长度是否为零,还判断了是否为空格,如果是空格也返回true。

  1. public static boolean isBlank(CharSequence cs) {
  2. int strLen = length(cs);
  3. if (strLen == 0) {
  4. return true;
  5. } else {
  6. for(int i = 0; i < strLen; ++i) {
  7. if (!Character.isWhitespace(cs.charAt(i))) {
  8. return false;
  9. }
  10. }
  11. return true;
  12. }
  13. }
  14. public static boolean isNotBlank(String str) {
  15. return !isBlank(str);
  16. }

测试效果

  1. package com.fcant.fclink.utils;
  2. import org.apache.commons.lang3.StringUtils;
  3. /**
  4. * TestCheckNull
  5. * <p>
  6. * encoding:UTF-8
  7. *
  8. * @author Fcant 上午 10:12 2020/7/26/0026
  9. */
  10. public class TestCheckNull {
  11. public static void main(String[] args) {
  12. BlankAndEmpty();
  13. }
  14. public static void BlankAndEmpty(){
  15. System.out.println(StringUtils.isBlank(null));
  16. System.out.println(StringUtils.isBlank(""));
  17. System.out.println(StringUtils.isBlank(" "));
  18. System.out.println(StringUtils.isBlank("\t"));
  19. System.out.println(StringUtils.isBlank("Fcant"));
  20. }
  21. }

image.png

总结

  • isEmpty:如果是null或者“”则返回true。
  • isBlank:如果是null或者“”或者空格或者制表符则返回true。**isBlank**判空更加准确」

    扩展

    判断几个字段同时不能为空,如果还用isBlank就显得有点累赘了。可以使用String的可变参数提供如下工具类。
    1. public class StringTool {
    2. public static boolean isNullStr(String.. . args) {
    3. boolean falg = false;
    4. for (String arg : args) {
    5. if (Stringutils.isBlank(arg) || arg.equals("null")) {
    6. falg = true;
    7. return falg;
    8. }
    9. }
    10. return falg;
    11. }
    12. }
    这个工具类的优点很明显,一方面判断了字符串“null”,另一方面对参数个数无限制,只要有一个参数是空则返回true。