鸿蒙三方库 | harmony-utils之RandomUtil随机数与随机字符串详解

发布时间:2026/7/27 11:47:27
鸿蒙三方库 | harmony-utils之RandomUtil随机数与随机字符串详解 前言随机数和随机字符串在验证码、密码生成、数据打乱等场景中广泛使用。pura/harmony-utils的RandomUtil封装了随机生成方法支持多种随机类型。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解帮助开发者快速掌握并应用到实际项目中。一、RandomUtil核心APIRandomUtil提供了以下随机生成方法方法说明返回类型使用场景randomInt(min, max)随机整数number随机选择randomDouble(min, max)随机浮点数number模拟数据randomString(length)随机字符串string验证码/密码randomUUID()随机UUIDstring唯一标识shuffle(array)随机打乱数组T[]抽奖/洗牌randomElement(array)随机取元素T随机选择1.1 核心特性简洁易用封装复杂逻辑为一行调用降低使用门槛类型安全完整的TypeScript类型定义编译期即可发现错误异常处理内置异常捕获机制避免运行时崩溃多种类型支持整数、浮点、字符串、UUID等随机类型1.2 随机类型对照类型方法范围典型用途整数randomInt[min, max]随机索引浮点randomDouble[min, max)模拟数据字符串randomString指定长度验证码UUIDrandomUUID标准格式唯一ID二、完整使用步骤2.1 安装依赖ohpminstallpura/harmony-utils2.2 生成随机数import{RandomUtil}frompura/harmony-utils;Button(生成随机数).width(100%).onClick((){try{letintRandomUtil.randomInt(1,100);letdoubleRandomUtil.randomDouble(0,1);this.result随机整数(1-100):${int}\n随机浮点(0-1):${double.toFixed(4)};}catch(e){this.result异常: e;}})2.3 生成随机字符串Button(生成随机字符串).width(100%).onClick((){try{letstr8RandomUtil.randomString(8);letstr16RandomUtil.randomString(16);letuuidRandomUtil.randomUUID();this.result8位:${str8}\n16位:${str16}\nUUID:${uuid};}catch(e){this.result异常: e;}})三、完整页面示例import{RandomUtil}frompura/harmony-utils;EntryComponentstruct RandomDemo{Stateresult:string;build(){Column({space:12}){Button(随机数).width(100%).onClick((){this.result整数:${RandomUtil.randomInt(1,100)}\n浮点:${RandomUtil.randomDouble(0,1).toFixed(4)};});Button(随机字符串).width(100%).onClick((){this.result8位:${RandomUtil.randomString(8)}\nUUID:${RandomUtil.randomUUID()};});Text(this.result).fontSize(14).fontColor(#333333)}.padding(16)}}四、进阶用法4.1 验证码生成import{RandomUtil}frompura/harmony-utils;functiongenerateCaptcha(length:number6):string{returnRandomUtil.randomString(length).toUpperCase();}4.2 抽奖功能functiondrawPrize(participants:string[]):string{letshuffledRandomUtil.shuffle(participants);returnRandomUtil.randomElement(shuffled);}五、注意事项范围包含randomInt包含max值密码安全randomString不适合密码学安全场景UUID格式randomUUID遵循标准UUID格式初始化依赖使用前需确保AppUtil.init()已调用shuffle修改shuffle可能修改原数组六、常见问题Q1: randomInt(1, 10)包含10吗包含randomInt的范围是闭区间[min, max]。Q2: randomString包含哪些字符通常包含大小写字母和数字具体取决于实现。Q3: randomUUID是v4 UUID吗通常是v4版本基于随机数但具体版本取决于实现。Q4: shuffle会修改原数组吗取决于实现建议使用返回值而非依赖原数组。总结RandomUtil的随机生成方法为验证码、密码、抽奖等场景提供了便捷支持。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。开发者可以利用这些方法快速生成各类随机数据。本文基于pura/harmony-utils工具库更多功能请参考官方文档与后续系列文章。