hutool工具类中StrUtil如何判断一个字符串是否为空,isEmpty和isBlank的区别
1:引入依赖
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.16</version>
</dependency>
2:使用方法
String name = " ";
String name = "null";
String name = "777"
System.out.println(StrUtil.isBlank(name));
System.out.println(StrUtil.isEmpty(name));;
3:StrUtil.isBlank( )
作用:该方法会先将字符串去除头尾空格后再进行判断。如果字符串为 null 或者去除头尾空格后的长度为0,则返回 true;否则返回 false。
//CharSequence是一个描述字符串结构的接口
public static boolean isBlank(CharSequence str) {
//初始化一个length 长度变量
int length;
// 如果这个字符串不是null, 并且这个字符串的长度不等于0
if (str != null && (length = str.length()) != 0) {
//遍历这个字符串的长度
for(int i = 0; i < length; ++i) {
//判断字符串 str 中第 i 个字符是否为空白字符(空格、制表符、换行符等)。
//具体来说,str.charAt(i) 表示获取 str 中第 i 个字符,
然后将其与空白字符进行比较,
//使用了 CharUtil.isBlankChar 方法。
这个方法是一个自定义的工具类,
可能实现了一些逻辑来判断一个字符是否为空白字符。
if (!CharUtil.isBlankChar(str.charAt(i))) {
return false;
}
}
return true;
} else {
return true;
}
}
4:StrUtil.isEmpty( )
作用:该方法会判断字符串是否为 null 或长度为 0。如果是,则返回 true;否则返回 false。
public static boolean isEmpty(CharSequence str) {
//返回字符串是否为空并且它的长度是否等于 0
return str == null || str.length() == 0;
}
5:两者区别
区别:在于对空格的处理。isEmpty
只判断字符串本身是否为空,而 isBlank
还会将字符串前后的空格给去掉后再判断是否为空。
例如,下面的代码:
String str = " ";
System.out.println(StrUtil.isEmpty(str)); // 输出结果:false
System.out.println(StrUtil.isBlank(str)); // 输出结果:true
在这个例子中,字符串 str
的内容是两个空格,显然不是空字符串(长度不为 0),但是它是一个空白字符串,即只包含空格。因此,isEmpty
方法返回 false,而 isBlank
方法返回 true
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性