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

相关新闻

终极指南:用palworld-save-tools轻松掌握帕鲁世界存档编辑

终极指南:用palworld-save-tools轻松掌握帕鲁世界存档编辑

终极指南:用palworld-save-tools轻松掌握帕鲁世界存档编辑 【免费下载链接】palworld-save-tools Tools for converting Palworld .sav files to JSON and back 项目地址: https://gitcode.com/gh_mirrors/pa/palworld-save-tools 你是否曾为帕鲁世界存档损坏…

2026/10/14 17:12:25 阅读更多 →
grunt-contrib-jshint报告输出全攻略:自定义reporter与结果分析

grunt-contrib-jshint报告输出全攻略:自定义reporter与结果分析

grunt-contrib-jshint报告输出全攻略:自定义reporter与结果分析 【免费下载链接】grunt-contrib-jshint Validate files with JSHint. 项目地址: https://gitcode.com/gh_mirrors/gr/grunt-contrib-jshint grunt-contrib-jshint是一款强大的JavaScript代码质…

2026/10/17 5:57:51 阅读更多 →
【爱马仕】Hermes 自动化工具部署避坑手册 解压、初始化全流程讲解(含安装包)

【爱马仕】Hermes 自动化工具部署避坑手册 解压、初始化全流程讲解(含安装包)

Windows 手动部署 Hermes 难度高?整合一键包简化本地智能环境搭建 不少想要体验 Hermes Agent 的用户,在着手本地部署时都会卡在环境配置环节。 手动部署需要逐个安装各类依赖组件、调试运行参数,同时还容易遭遇命令行报错、系统安全拦截、程…

2026/10/16 22:27:40 阅读更多 →

最新新闻

ODL下发SRv6卡壳?用Expect脚本打通SSH批量配置的最后一公里

ODL下发SRv6卡壳?用Expect脚本打通SSH批量配置的最后一公里

记不清这是第几次被问“ODL能不能直接下发SRv6策略”了,尤其在刚接触OpenDaylight(ODL)的人眼里,控制器有了RESTCONF、NETCONF,批量下发OSPF、BGP这类配置应该是顺手的事。但真在现场跑一次,你会发现理想和…

2026/10/18 3:02:07 阅读更多 →
Spring Boot默认连接池HikariCP核心参数与线上调优实战

Spring Boot默认连接池HikariCP核心参数与线上调优实战

Spring Boot项目是个Web应用,基本离不开数据库连接池,而HikariCP作为Spring Boot 2.0之后的默认连接池,几乎每个用Spring Boot的人都在跟它打交道。连接池这东西平时不显山不露水,但一旦接口慢了、连接超时了、数据库连接被打满了…

2026/10/18 3:02:07 阅读更多 →
CentOS 7下XFS文件系统备份恢复实战:xfsdump与xfsrestore避坑指南

CentOS 7下XFS文件系统备份恢复实战:xfsdump与xfsrestore避坑指南

1. 为什么xfs的备份恢复不能照搬ext4那套经验很多人第一次在CentOS 7上处理xfs文件系统的备份恢复,都会下意识地拿ext4时代的经验往上套,结果往往在关键时刻掉链子。我自己就经历过一次:一台跑了两年多的数据服务器,磁盘分区是xfs…

2026/10/18 3:02:07 阅读更多 →
基于GPS授时的异地网络测试方案:原理、实操与避坑指南

基于GPS授时的异地网络测试方案:原理、实操与避坑指南

做网络测试的人,最怕碰到的场景之一就是两端设备不在同一个机房,却要测出可信的端到端时延和抖动。以前遇到这种活儿,基本都是拉一根临时专线,或者用网络损伤仪模拟链路,要么成本高,要么数据不落地。后来我…

2026/10/18 3:02:07 阅读更多 →
M1/M2 Mac部署OpenClaw全攻略:arm64架构下从零跑通龙虾智能体

M1/M2 Mac部署OpenClaw全攻略:arm64架构下从零跑通龙虾智能体

第一次在M1芯片的MacBook上部署OpenClaw,我整整折腾了一个周末。几乎所有现成教程都默认你活在x86_64的世界里,一换到arm64架构就开始连环报错——node_modules装到一半编译失败,Python扩展包全部要从源码重新构建,照着官方文档敲…

2026/10/18 3:02:07 阅读更多 →
微信小程序实现MBTI+霍兰德双职业测评全链路

微信小程序实现MBTI+霍兰德双职业测评全链路

简介:本资源是一套完整的微信小程序实战项目,面向前端初学者与心理学应用开发爱好者,提供MBTI职业性格测试与霍兰德职业兴趣测试的双模测评功能实现方案。项目基于原生微信小程序框架开发,涵盖从题目交互、答案采集、维度计分到结…

2026/10/18 3:01:06 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →