鸿蒙三方库 | harmony-utils之StrUtil字符串转换与替换详解

前言

字符串转换和替换是文本处理的基础操作,如大小写转换、首字母大写、字符串替换等。@pura/harmony-utilsStrUtil 封装了丰富的字符串转换方法。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解,帮助开发者快速掌握并应用到实际项目中。

一、StrUtil转换核心API

StrUtil 提供了以下字符串转换方法:

方法 说明 返回类型 使用场景
toUpperCase(str) 转大写 string 大写转换
toLowerCase(str) 转小写 string 小写转换
capitalize(str) 首字母大写 string 标题格式
reverse(str) 反转字符串 string 特殊处理
replace(str, old, new) 替换字符串 string 文本替换
replaceAll(str, regex, new) 正则替换 string 批量替换

1.1 核心特性

  • 简洁易用:封装复杂逻辑为一行调用,降低使用门槛
  • 类型安全:完整的TypeScript类型定义,编译期即可发现错误
  • 异常处理:内置异常捕获机制,避免运行时崩溃
  • 丰富方法:覆盖大小写、首字母、反转、替换等场景

1.2 转换方法对照

方法 输入 输出 说明
toUpperCase 'hello' 'HELLO' 全部大写
toLowerCase 'WORLD' 'world' 全部小写
capitalize 'harmony' 'Harmony' 首字母大写
reverse 'abc' 'cba' 字符反转

二、完整使用步骤

2.1 安装依赖

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

2.2 大小写转换

typescript 复制代码
import { StrUtil } from '@pura/harmony-utils';

Button('大小写转换')
  .width('100%')
  .onClick(() => {
    try {
      let upper = StrUtil.toUpperCase('hello');
      let lower = StrUtil.toLowerCase('WORLD');
      let cap = StrUtil.capitalize('harmony');
      this.result = `大写: ${upper}\n小写: ${lower}\n首字母大写: ${cap}`;
    } catch (e) {
      this.result = '异常: ' + e;
    }
  })

2.3 字符串替换

typescript 复制代码
Button('字符串替换')
  .width('100%')
  .onClick(() => {
    try {
      let replaced = StrUtil.replace('hello world', 'world', 'harmony');
      let reversed = StrUtil.reverse('hello');
      this.result = `替换: ${replaced}\n反转: ${reversed}`;
    } catch (e) {
      this.result = '异常: ' + e;
    }
  })

三、完整页面示例

typescript 复制代码
import { StrUtil } from '@pura/harmony-utils';

@Entry
@Component
struct StrConvertDemo {
  @State result: string = '';

  build() {
    Column({ space: 12 }) {
      Button('大小写转换').width('100%').onClick(() => {
        this.result = `大写: ${StrUtil.toUpperCase('hello')}\n首字母: ${StrUtil.capitalize('world')}`;
      });
      Button('替换反转').width('100%').onClick(() => {
        this.result = `替换: ${StrUtil.replace('abc', 'a', 'x')}\n反转: ${StrUtil.reverse('hello')}`;
      });
      Text(this.result).fontSize(14).fontColor('#333333')
    }
    .padding(16)
  }
}

四、进阶用法

4.1 用户名格式化

typescript 复制代码
import { StrUtil } from '@pura/harmony-utils';

function formatUsername(name: string): string {
  let trimmed = name.trim();
  return StrUtil.capitalize(StrUtil.toLowerCase(trimmed));
}

4.2 敏感词替换

typescript 复制代码
function maskSensitiveWords(text: string, words: string[]): string {
  let result = text;
  words.forEach(word => {
    result = StrUtil.replaceAll(result, word, '*'.repeat(word.length));
  });
  return result;
}

五、注意事项

  1. null安全:传入null或undefined时方法会安全处理
  2. 编码问题:中文大小写转换可能不符合预期
  3. 正则替换:replaceAll使用正则,注意特殊字符转义
  4. 初始化依赖 :使用前需确保 AppUtil.init() 已调用
  5. 性能考虑:大量字符串操作时注意性能影响

六、常见问题

Q1: capitalize对中文有效吗?

中文没有大小写概念,capitalize对中文无效,原样返回。

Q2: replace只替换第一个匹配吗?

是的,replace只替换第一个匹配,需要替换所有请使用replaceAll。

Q3: reverse对emoji有效吗?

部分emoji由多个Unicode码点组成,reverse可能拆散emoji。

Q4: toUpperCase对特殊字符有效吗?

特殊字符(如数字、标点)不受大小写转换影响,原样返回。

总结

StrUtil 的字符串转换和替换方法为文本处理提供了便捷支持。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。开发者可以利用这些方法简化大小写转换、文本替换等操作。

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

相关推荐
M-Robots echo1 小时前
安全机制架构解析:M-Robots 分层安全体系,筑牢机器人设备运行底座
机器人·ros·鸿蒙·开源社区·m-robots
云端漫步198712 小时前
HarmonyOS 互动卡片实战:快递卡片与睡眠卡片完整开发流程
华为·harmonyos
智塑未来13 小时前
鸿蒙6.1隐私安心加倍:加密分享、星盾防诈、应用锁三重保护,守护到位
华为·harmonyos
byte轻骑兵13 小时前
2026手机远程办公:向日葵、TeamViewer、ToDesk鸿蒙适配+传文件+AI审计功能对比
智能手机·harmonyos·todesk·teamviewer·手机远程办公
贾伟康14 小时前
【知律|06】HarmonyOS ArkTS 法律分类实战:让民法、劳动、消费等入口可维护
harmonyos·arkts·arkui·分类设计·多设备
M-Robots echo1 天前
M-CLAW,面向具身智能的机器人任务编排开发框架
机器人·ros·鸿蒙·开源社区·m-robots
M-Robots echo1 天前
王成录:机器人产业下一个十年,拼的是 “系统级智能化” 而非单点算法堆叠
机器人·ros·鸿蒙·开源社区·m-robots·王成录
梦想不只是梦与想1 天前
鸿蒙 测试工具:DevEco Testing(一)
测试工具·harmonyos·testing
大锅盖11 天前
Web 工单要调用相机,第一步不是打开取景框,而是建立能力门禁
前端·数码相机·harmonyos
M-Robots echo1 天前
M-Robots ROS 兼容适配方案,实现存量机器人项目低成本迁移
机器人·ros·鸿蒙·开源社区·m-robots