判断字符串空值
作用(判断逻辑) 返回值 方法 判断字符串是否为空白( null、空字符串""或纯空格" ")boolean StringUtils.isBlank(String str) 判断字符串是否为空(仅 null或空字符串"",纯空格" "视为非空)boolean StringUtils.isEmpty(String str) 判断字符串是否为非空白(不为 null、非空字符串且非纯空格)boolean StringUtils.isNotBlank(String str) 判断字符串是否为非空(不为 null且非空字符串,纯空格" "视为非空)boolean StringUtils.isNotEmpty(String str) 判断多个字符串中是否任意一个为空白(只要有一个满足 isBlank,则返回true)boolean StringUtils.isAnyBlank(CharSequence… css) 判断多个字符串中是否任意一个为空(只要有一个满足 isEmpty,则返回true)boolean StringUtils.isAnyEmpty(CharSequence… css) 判断多个字符串是否全部为非空白(所有都满足 isNotBlank,才返回 true) boolean StringUtils.isNoneBlank(CharSequence… css) 判断多个字符串是否全部为非空(所有都满足 isNotEmpty,才返回true)boolean StringUtils.isNoneEmpty(CharSequence… css)
区别说明:
1. isBlank 与 isEmpty
- isBlank 更严格:会把纯空格(" ")视为空白(返回 true);
- isEmpty 仅判断 null 或空字符串(""),纯空格会返回 false。
2. 批量判断(isAnyXXX 与 isNoneXXX)
- isAnyBlank:“有一个空白就返回 true”(用于校验 “必填字段不能有空白”);
- isNoneBlank:“所有都非空白才返回 true”(与 !isAnyBlank 等价);
- isAnyEmpty 和 isNoneEmpty 逻辑类似,但基于 isEmpty 判断。
演示
StringUtils.isBlank(""); // true
StringUtils.isBlank(" "); // true
StringUtils.isBlank(" "); // true
StringUtils.isBlank("\t"); // true
StringUtils.isBlank("\r"); // true
StringUtils.isBlank("\n"); // true
StringUtils.isBlank(null); // true
StringUtils.isEmpty(""); // true
StringUtils.isEmpty(" "); // false
StringUtils.isEmpty(" "); // false
StringUtils.isEmpty("\t"); // false
StringUtils.isEmpty("\r"); // false
StringUtils.isEmpty("\n"); // false
StringUtils.isEmpty(null); // true
StringUtils.isWhitespace(""); // true
StringUtils.isWhitespace(" "); // true
StringUtils.isWhitespace(" "); // true
StringUtils.isWhitespace("\t"); // true
StringUtils.isWhitespace("\r"); // true
StringUtils.isWhitespace("\n"); // true
StringUtils.isWhitespace(null); // false从上面的结果可以看出
blank:代表的是空串("")、空白符(空格""," ",制表符"\t",回车符"\r","\n"等)以及null值;empty:代表的是空串("")和null值,不包含空白符;whitespace:包含空串("")和空白符,不包含null值;
isAnyBlank,isNoneBlank,isAnyEmpty,isNoneEmpty四个方法是用于判断多个字符串是否为空;
对于isAnyBlank和isAnyEmpty来说,只要有一个字符串为空,结果即为true;
对于isNoneBlank和isNoneEmpty,只要存在一个字符串为空,结果即为false,具体参见下面的例子
StringUtils.isAnyBlank("titanic", "jack", "rose")); // false
StringUtils.isAnyBlank("", "jack", "rose")); // true
StringUtils.isAnyBlank(" ", "jack", "rose")); // true
StringUtils.isAnyBlank(null, "jack", "rose")); // true
StringUtils.isAnyEmpty("titanic", "jack", "rose")); // false
StringUtils.isAnyEmpty("", "jack", "rose")); // true
StringUtils.isAnyEmpty(" ", "jack", "rose")); // false
StringUtils.isAnyEmpty(null, "jack", "rose")); // true
StringUtils.isNoneBlank("titanic", "jack", "rose")); // true
StringUtils.isNoneBlank("", "jack", "rose")); // false
StringUtils.isNoneBlank(" ", "jack", "rose")); // false
StringUtils.isNoneBlank(null, "jack", "rose")); // false
StringUtils.isNoneEmpty("titanic", "jack", "rose")); // true
StringUtils.isNoneEmpty("", "jack", "rose")); // false
StringUtils.isNoneEmpty(" ", "jack", "rose")); // true
StringUtils.isNoneEmpty(null, "jack", "rose")); // false 

