StringUtils.isEmpty
源码
这个方法判断的是字符串是否为null或者其长度是否为零。
public static boolean isEmpty(CharSequence cs) {return cs == null || cs.length() == 0;}public static boolean isNotEmpty(String str) {return !isEmpty(str);}
测试效果
package com.fcant.fclink.utils;import org.apache.commons.lang3.StringUtils;/*** TestCheckNull* <p>* encoding:UTF-8** @author Fcant 上午 10:12 2020/7/26/0026*/public class TestCheckNull {public static void main(String[] args) {BlankAndEmpty();}public static void BlankAndEmpty(){System.out.println(StringUtils.isEmpty(null));System.out.println(StringUtils.isEmpty(""));System.out.println(StringUtils.isEmpty(" "));System.out.println(StringUtils.isEmpty("\t"));System.out.println(StringUtils.isEmpty("Fcant"));}}
StringUtils.isBlank
源码
这个方法除了判断字符串是否为null和长度是否为零,还判断了是否为空格,如果是空格也返回true。
public static boolean isBlank(CharSequence cs) {int strLen = length(cs);if (strLen == 0) {return true;} else {for(int i = 0; i < strLen; ++i) {if (!Character.isWhitespace(cs.charAt(i))) {return false;}}return true;}}public static boolean isNotBlank(String str) {return !isBlank(str);}
测试效果
package com.fcant.fclink.utils;import org.apache.commons.lang3.StringUtils;/*** TestCheckNull* <p>* encoding:UTF-8** @author Fcant 上午 10:12 2020/7/26/0026*/public class TestCheckNull {public static void main(String[] args) {BlankAndEmpty();}public static void BlankAndEmpty(){System.out.println(StringUtils.isBlank(null));System.out.println(StringUtils.isBlank(""));System.out.println(StringUtils.isBlank(" "));System.out.println(StringUtils.isBlank("\t"));System.out.println(StringUtils.isBlank("Fcant"));}}
总结
isEmpty:如果是null或者“”则返回true。isBlank:如果是null或者“”或者空格或者制表符则返回true。「**isBlank**判空更加准确」。扩展
判断几个字段同时不能为空,如果还用isBlank就显得有点累赘了。可以使用String的可变参数提供如下工具类。
这个工具类的优点很明显,一方面判断了字符串“null”,另一方面对参数个数无限制,只要有一个参数是空则返回true。public class StringTool {public static boolean isNullStr(String.. . args) {boolean falg = false;for (String arg : args) {if (Stringutils.isBlank(arg) || arg.equals("null")) {falg = true;return falg;}}return falg;}}
