0
点赞
收藏
分享

微信扫一扫

【Java字符串工具类isEmpty和isBlank的区别】

北溟有渔夫 2022-03-24 阅读 61
java

isEmpty和isBlank的区别

isEmpty

判断字符串是否为空字符串,只要一个任意字符(包括空白字符)就不为空。
看下isEmpty的方法源码:

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

//输入“ ” 返回false 
//输入“” 返回true
//输入“java” 返回false

这个方法只判断了是为null或者长度为0,意味着如果用户输入了“ ”空白字符,这个方法就不通过了,结果就是不为空了。

isBlank

判断字符串是否为空字符串,全部空白字符也为空。

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

//输入 “ ”  返回true;
//输入 “”   返回true;
//输入“java”返回false;

第七行,只要有一个字符不为空白字符就返回false, 也就是说,如果全部都为空白字符就返回true,也就是全部空白字符也为空。

isEmpty和isBlank怎么选

很明显,我们要判断一个字符串为空,绝大部分情况下“空白字符”也要为空的,严谨来说肯定要用isBlank,虽然 isEmpty 也可以,但如果在最前端的接口不被拦截掉,请求到了后端的服务、数据库,就可能会造成压力,甚至是系统异常,这是完全可以避免的。
但万事也没有绝对,如果你的程序可以接受任意字符,包括“空白字符”,那就要选择 isEmpty,isBlank 会拦截所有空白字符,就达不到要求。

与之相对应的一般还有isNotEmpty和isNotBlank,这都是对工具类的封装。

举报

相关推荐

0 条评论