鸿蒙三方库 | harmony-utils之StrUtil字符串空值判断详解
·
前言
字符串空值判断是开发中最常见的操作之一,null、undefined、空字符串、纯空格等都需要处理。@pura/harmony-utils 的 StrUtil 封装了丰富的字符串判断方法。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解,帮助开发者快速掌握并应用到实际项目中。

一、StrUtil判断核心API
StrUtil 提供了以下字符串判断方法:
| 方法 | 说明 | 返回类型 | 使用场景 |
|---|---|---|---|
isEmpty(str) |
是否为空 | boolean | 空值检查 |
isNotEmpty(str) |
是否非空 | boolean | 非空判断 |
isBlank(str) |
是否空白 | boolean | 空白检查 |
isNotBlank(str) |
是否非空白 | boolean | 有效内容 |
isNullOrUndefined(str) |
是否null或undefined | boolean | 类型检查 |
1.1 核心特性
- 简洁易用:封装复杂逻辑为一行调用,降低使用门槛
- 类型安全:完整的TypeScript类型定义,编译期即可发现错误
- 异常处理:内置异常捕获机制,避免运行时崩溃
- 全面覆盖:覆盖null、undefined、空字符串、纯空格等场景
1.2 isEmpty与isBlank对比
| 输入 | isEmpty | isBlank |
|---|---|---|
null |
true | true |
undefined |
true | true |
'' |
true | true |
' ' |
false | true |
'hello' |
false | false |
二、完整使用步骤
2.1 安装依赖
ohpm install @pura/harmony-utils
2.2 空值判断
import { StrUtil } from '@pura/harmony-utils';
Button('isEmpty判断')
.width('100%')
.onClick(() => {
try {
let r1 = StrUtil.isEmpty('');
let r2 = StrUtil.isEmpty(null);
let r3 = StrUtil.isEmpty('hello');
this.result = `isEmpty(''): ${r1}\nisEmpty(null): ${r2}\nisEmpty('hello'): ${r3}`;
} catch (e) {
this.result = '异常: ' + e;
}
})
2.3 空白判断
Button('isBlank判断')
.width('100%')
.onClick(() => {
try {
let r1 = StrUtil.isBlank('');
let r2 = StrUtil.isBlank(' ');
let r3 = StrUtil.isBlank('hello');
this.result = `isBlank(''): ${r1}\nisBlank(' '): ${r2}\nisBlank('hello'): ${r3}`;
} catch (e) {
this.result = '异常: ' + e;
}
})

三、完整页面示例
import { StrUtil } from '@pura/harmony-utils';
@Entry
@Component
struct StrEmptyDemo {
@State result: string = '';
build() {
Column({ space: 12 }) {
Button('isEmpty测试').width('100%').onClick(() => {
let r1 = StrUtil.isEmpty('');
let r2 = StrUtil.isEmpty('hello');
this.result = `isEmpty(''): ${r1}, isEmpty('hello'): ${r2}`;
});
Button('isBlank测试').width('100%').onClick(() => {
let r1 = StrUtil.isBlank(' ');
let r2 = StrUtil.isNotBlank(' hello ');
this.result = `isBlank(' '): ${r1}, isNotBlank(' hello '): ${r2}`;
});
Text(this.result).fontSize(14).fontColor('#333333')
}
.padding(16)
}
}
四、进阶用法
4.1 表单校验
import { StrUtil, ToastUtil } from '@pura/harmony-utils';
function validateForm(name: string, phone: string): boolean {
if (StrUtil.isBlank(name)) {
ToastUtil.show('请输入姓名');
return false;
}
if (StrUtil.isBlank(phone)) {
ToastUtil.show('请输入手机号');
return false;
}
return true;
}
4.2 安全取值
function safeGetString(value: string | null | undefined, defaultVal: string): string {
return StrUtil.isNotBlank(value) ? value! : defaultVal;
}
五、注意事项
- null安全:StrUtil方法对null和undefined安全,不会抛异常
- 空白字符:isBlank会检查空格、制表符等空白字符
- 性能优化:频繁调用时建议缓存结果
- 初始化依赖:使用前需确保
AppUtil.init()已调用 - 链式调用:可与其他StrUtil方法链式使用
六、常见问题
Q1: isEmpty和isBlank有什么区别?
isEmpty只检查null/undefined/空字符串,isBlank还会检查纯空格字符串。
Q2: isNullOrUndefined什么时候用?
当只需要判断是否为null或undefined,不关心空字符串时使用。
Q3: 中文空格算空白吗?
是的,全角空格也属于空白字符,isBlank会返回true。
Q4: 如何判断字符串是否只有数字?
请使用RegexUtil.isNumber()方法。


总结
StrUtil 的字符串判断方法为空值检查提供了便捷支持。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。开发者可以利用这些方法简化表单校验和安全取值等操作。
本文基于
@pura/harmony-utils工具库,更多功能请参考官方文档与后续系列文章。
更多推荐




所有评论(0)