鸿蒙三方库 | harmony-utils之StrUtil字符串空值判断详解

前言

字符串空值判断是开发中最常见的操作之一,null、undefined、空字符串、纯空格等都需要处理。@pura/harmony-utilsStrUtil 封装了丰富的字符串判断方法。本文将从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 安装依赖

bash 复制代码
ohpm install @pura/harmony-utils

2.2 空值判断

typescript 复制代码
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 空白判断

typescript 复制代码
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;
    }
  })

三、完整页面示例

typescript 复制代码
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 表单校验

typescript 复制代码
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 安全取值

typescript 复制代码
function safeGetString(value: string | null | undefined, defaultVal: string): string {
  return StrUtil.isNotBlank(value) ? value! : defaultVal;
}

五、注意事项

  1. null安全:StrUtil方法对null和undefined安全,不会抛异常
  2. 空白字符:isBlank会检查空格、制表符等空白字符
  3. 性能优化:频繁调用时建议缓存结果
  4. 初始化依赖 :使用前需确保 AppUtil.init() 已调用
  5. 链式调用:可与其他StrUtil方法链式使用

六、常见问题

Q1: isEmpty和isBlank有什么区别?

isEmpty只检查null/undefined/空字符串,isBlank还会检查纯空格字符串。

Q2: isNullOrUndefined什么时候用?

当只需要判断是否为null或undefined,不关心空字符串时使用。

Q3: 中文空格算空白吗?

是的,全角空格也属于空白字符,isBlank会返回true。

Q4: 如何判断字符串是否只有数字?

请使用RegexUtil.isNumber()方法。

总结

StrUtil 的字符串判断方法为空值检查提供了便捷支持。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。开发者可以利用这些方法简化表单校验和安全取值等操作。

本文基于 @pura/harmony-utils 工具库,更多功能请参考官方文档与后续系列文章。

相关推荐
jin1233221 小时前
HarmonyOS ArkTS API 24实现声明式 UI 框架与 @Builder 组件复用模式构建三标签页智能账单应用
ui·华为·harmonyos
DONSEE广东东信智能读卡器1 小时前
东信智能身份证阅读器、读卡器使用ArkTS 语言开发基于鸿蒙HarmonyOS 6.1版本的读取测试软件
harmonyos·鸿蒙·身份证阅读器·社保卡读卡器·东信est-100
ov二号1 小时前
鸿蒙原生ArkTS布局方式之Image+renderMode图片渲染模式深度解析
华为·harmonyos
木木子222 小时前
# 计算器应用 — HarmonyOS Grid布局与交互逻辑深度解析
华为·交互·harmonyos
爱写代码的阿森2 小时前
鸿蒙三方库 | harmony-utils之NumberUtil数值判断与转换详解
华为·harmonyos·鸿蒙·huawei
爱写代码的阿森3 小时前
鸿蒙三方库 | harmony-utils之StrUtil字符串转换与替换详解
华为·harmonyos·鸿蒙·huawei
●VON3 小时前
鸿蒙 PC Markdown 编辑器 Alpha 评审:如何用退出条件判断阶段完成
网络·安全·华为·编辑器·harmonyos·鸿蒙
funnycoffee1233 小时前
华为6730交换机端口启用jumboframe巨型帧
华为
●VON4 小时前
鸿蒙 PC Markdown 编辑器 Bridge 协议:原生外壳与 Web 内核的状态同步
前端·华为·编辑器·harmonyos·鸿蒙