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

鸿蒙三方库 | 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或undefinedboolean类型检查

1.1 核心特性

  • 简洁易用:封装复杂逻辑为一行调用,降低使用门槛
  • 类型安全:完整的TypeScript类型定义,编译期即可发现错误
  • 异常处理:内置异常捕获机制,避免运行时崩溃
  • 全面覆盖:覆盖null、undefined、空字符串、纯空格等场景

1.2 isEmpty与isBlank对比

输入isEmptyisBlank
nulltruetrue
undefinedtruetrue
''truetrue
' 'falsetrue
'hello'falsefalse

二、完整使用步骤

2.1 安装依赖

ohpminstall@pura/harmony-utils

2.2 空值判断

import{StrUtil}from'@pura/harmony-utils';Button('isEmpty判断').width('100%').onClick(()=>{try{letr1=StrUtil.isEmpty('');letr2=StrUtil.isEmpty(null);letr3=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{letr1=StrUtil.isBlank('');letr2=StrUtil.isBlank(' ');letr3=StrUtil.isBlank('hello');this.result=`isBlank(''):${r1}\nisBlank(' '):${r2}\nisBlank('hello'):${r3}`;}catch(e){this.result='异常: '+e;}})

三、完整页面示例

import{StrUtil}from'@pura/harmony-utils';@Entry@Componentstruct StrEmptyDemo{@Stateresult:string='';build(){Column({space:12}){Button('isEmpty测试').width('100%').onClick(()=>{letr1=StrUtil.isEmpty('');letr2=StrUtil.isEmpty('hello');this.result=`isEmpty(''):${r1}, isEmpty('hello'):${r2}`;});Button('isBlank测试').width('100%').onClick(()=>{letr1=StrUtil.isBlank(' ');letr2=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';functionvalidateForm(name:string,phone:string):boolean{if(StrUtil.isBlank(name)){ToastUtil.show('请输入姓名');returnfalse;}if(StrUtil.isBlank(phone)){ToastUtil.show('请输入手机号');returnfalse;}returntrue;}

4.2 安全取值

functionsafeGetString(value:string|null|undefined,defaultVal:string):string{returnStrUtil.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工具库,更多功能请参考官方文档与后续系列文章。