HarmonyOS 格式化工具全家桶:从数字到汉字拼音,FormatUtil 一网打尽

发布时间:2026/5/29 2:59:34

HarmonyOS 格式化工具全家桶:从数字到汉字拼音,FormatUtil 一网打尽 文章目录前言getFormatPercentage百分比格式化getFormatFileSize文件大小自动换算getTruncateText文本超长截断getIconFontIconFont 字符解析transliterator汉字转拼音组合使用文件列表展示写在最后前言近期发现一款很有意思的HarmonyOS 三方库, 地址 pura/harmony-utils(V1.4.0) , 作者是桃花镇童长老, 我这里也是直接通过该作者公布的源码进行案例编写进行,写了到目前写了一部分demo ,感觉确实很有帮助,这里呢也是开始写一个系列的演示demo 供大家参考。如有帮助可以在OpenHarmony中进行下载安装进行使用哦案例demo导航展示↓↓↓↓↓↓接下来言归正传 ↓↓↓↓FormatUtil 除了处理手机号和身份证还有一堆处理数字展示相关的工具。文件大小自动换算单位、百分比控制小数位数、长文本截断省略……这些需求在 App 里出现频率极高这篇一起搞定。getFormatPercentage百分比格式化把一个 0-1 的小数格式化成百分比字符串还能控制小数位数// 默认 2 位小数this.addLog(getFormatPercentage(0.1234):${FormatUtil.getFormatPercentage(0.1234)});// 结果12.34%// 0 位小数取整this.addLog(getFormatPercentage(0.998, 0):${FormatUtil.getFormatPercentage(0.998,0)});// 结果100%// 4 位小数this.addLog(getFormatPercentage(1.0, 4):${FormatUtil.getFormatPercentage(1.0,4)});// 结果100.0000%两个参数数值0 到 1 之间小数位数默认 2进度条、统计报表里显示百分比的场景用这个不需要自己写(value * 100).toFixed(2) %。getFormatFileSize文件大小自动换算这个太常用了——上传下载界面、存储空间展示都需要把字节数换算成人类可读的单位[0,500,1536,1024*1024,1024*1024*1024,1024*1024*1024*1024].forEach(b{this.addLog(${b}→${FormatUtil.getFormatFileSize(b)});});// 0 → 0 B// 500 → 500 B// 1536 → 1.5 KB// 1048576 → 1 MB// 1073741824 → 1 GB// 1099511627776 → 1 TBgetFormatFileSize会自动选择最合适的单位B、KB、MB、GB、TB不用写一大串 if-else 判断。第二个参数可以控制小数位数// -1 表示取整this.addLog(1500B(取整):${FormatUtil.getFormatFileSize(1500,-1)});// 结果1 KB而不是 1.5 KB传-1表示不保留小数直接取整。默认保留 2 位小数。getTruncateText文本超长截断在列表卡片里展示文章标题超过一定长度就截断加省略号——这个需求用getTruncateText// 截断到 10 个字符this.addLog(截断(10):${FormatUtil.getTruncateText(this.inputText,10)});// 这是一段需要缩短的很长 → 这是一段需要缩短...// 默认截断到 20 个字符this.addLog(截断(20):${FormatUtil.getTruncateText(this.inputText)});// 100 个字符原文不够长不截断this.addLog(截断(100):${FormatUtil.getTruncateText(this.inputText,100)});两个参数原始字符串最大字符数默认 20如果原文长度小于等于maxLength原样返回不加省略号。超过了才截断并加...。getIconFontIconFont 字符解析如果项目用了 IconFont 字体图标就会遇到 Unicode 码点转字符的需求// 传入十六进制 Unicode 码点constchFormatUtil.getIconFont(this.inputIconFont);this.addLog(getIconFont(${this.inputIconFont}) → ${ch} (charCode:${ch.charCodeAt(0)}));inputIconFont默认值是e631这是一个十六进制的 Unicode 码点。getIconFont会把它转成对应的字符然后用 IconFont 字体就能渲染出图标了。使用场景从接口拿到图标的码点值需要转成字符才能在Text组件里显示。transliterator汉字转拼音这个功能依托 HarmonyOS 系统的 i18n 转写能力// 简体中文转拼音constrFormatUtil.transliterator(你好世界);this.addLog(transliterator:${r});// 结果类似nǐ hǎo shì jièconstr2FormatUtil.transliterator(全栈若城);this.addLog(transliterator:${r2});常见使用场景联系人列表按拼音首字母分组搜索功能支持拼音输入名字读音提示注意多音字的处理取决于系统 i18n 库的实现特殊场景下可能不准确。组合使用文件列表展示把路径工具和格式化工具组合就能做出专业的文件列表constdirFileUtil.getFilesDirPath();constfilesFileUtil.listFileSync(dir,{recursion:false});files.forEach(name{constfullPath${dir}/${name};conststatFileUtil.statSync(fullPath);constsizeStrFormatUtil.getFormatFileSize(stat.size);// 展示文件名截断 大小constdisplayNameFormatUtil.getTruncateText(name,20);this.addLog(${displayName}${sizeStr});});写在最后这组 API 的共同特点是把常见的数据 → 展示字符串转换封装好直接调用不用自己写格式化逻辑。几个最常用的getFormatPercentage进度、比率显示getFormatFileSize存储空间、文件大小显示getTruncateText列表标题、描述截断配合手机号和身份证那篇FormatUtil 的日常使用场景基本上都覆盖了。

相关新闻