news 2026/7/25 11:39:12

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
鸿蒙三方库 | 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 安装依赖

ohpminstall@pura/harmony-utils

2.2 大小写转换

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

2.3 字符串替换

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

三、完整页面示例

import{StrUtil}from'@pura/harmony-utils';@Entry@Componentstruct StrConvertDemo{@Stateresult: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 用户名格式化

import{StrUtil}from'@pura/harmony-utils';functionformatUsername(name:string):string{lettrimmed=name.trim();returnStrUtil.capitalize(StrUtil.toLowerCase(trimmed));}

4.2 敏感词替换

functionmaskSensitiveWords(text:string,words:string[]):string{letresult=text;words.forEach(word=>{result=StrUtil.replaceAll(result,word,'*'.repeat(word.length));});returnresult;}

五、注意事项

  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工具库,更多功能请参考官方文档与后续系列文章。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/25 11:37:51

Tiktokenizer:AI开发者必备的Token计算神器,告别账单超支!

Tiktokenizer:AI开发者必备的Token计算神器,告别账单超支! 【免费下载链接】tiktokenizer Online playground for OpenAPI tokenizers 项目地址: https://gitcode.com/gh_mirrors/ti/tiktokenizer 你是否曾为AI API的神秘账单而困惑&a…

作者头像 李华
网站建设 2026/7/25 11:35:28

TI MibSPI ECC诊断与内存测试实战:从原理到代码实现

1. MibSPI内存数据完整性保障:从原理到实战在嵌入式系统,尤其是汽车电子和工业控制这类对可靠性要求严苛的领域,内存数据完整性从来都不是一个可以讨价还价的选项。一次由宇宙射线、电源毛刺或芯片老化引发的内存位翻转,轻则导致传…

作者头像 李华
网站建设 2026/7/25 11:35:05

AI Agent社交网络:从被动交互到主动社交的架构实践

1. 项目背景与核心价值 MoltBook到InStreet的转型,本质上是在探索AI Agent社交网络的下一代形态。这个领域正在经历从"被动交互"到"主动社交"的范式转移。传统社交产品依赖人类用户主动发起互动,而AI Agent社交网络的关键突破在于—…

作者头像 李华
网站建设 2026/7/25 11:32:43

让你的Windows任务栏焕然一新:TranslucentTB透明化解决方案

让你的Windows任务栏焕然一新:TranslucentTB透明化解决方案 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 还在忍受Windows系…

作者头像 李华
网站建设 2026/7/25 11:32:17

选择Taotoken的Token Plan套餐如何让项目成本更可控

选择Taotoken的Token Plan套餐如何让项目成本更可控 在开发或创业项目中,模型API的调用成本是预算规划的重要一环。传统的按次计费模式虽然灵活,但在项目初期或流量波动较大时,容易导致月度账单难以预测,给成本控制带来挑战。Tao…

作者头像 李华
网站建设 2026/7/25 11:32:11

计算机毕业设计之基于SpringBoot的就业中介管理平台的设计与实现

随着网络科技的不断发展以及人们经济水平的逐步提高,网络技术如今已成为人们生活中不可缺少的一部分,而信息管理系统是通过计算机技术,针对用户需求开发与设计,该技术尤其在各行业领域发挥了巨大的作用,有效地促进了就…

作者头像 李华