方法1:推荐方便。
System.Hash 单元
Memo1.Lines.Add(THash.GetRandomString(50));
方法二(自己写的):
function TStrApi.SuiJiString(const AWeiShu: Integer): string; const SourceStr: string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; var MyRep: string; I: Integer; begin Randomize; for I := 1 to AWeiShu do begin //这里只所以必须加1,是因为SourceStr是从1开始的,而Random是从0开始的,SourceStr[0]就会报错,SourceStr[63]也会报错 MyRep := MyRep + SourceStr[Random(61)+1]; end; Exit(MyRep); end;
PK结果,效率差不多。:
procedure TForm6.Button1Click(Sender: TObject); var I: Integer; startTime: Cardinal; strResult: string; begin startTime := GetTickCount; for I := 1 to 10000 do begin strResult := THash.GetRandomString(50); end; Label1.Caption := '耗时: ' + (GetTickCount - startTime).ToString; end; procedure TForm6.Button2Click(Sender: TObject); const SourceStr: string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; var strResult: string; I,K: Integer; startTime: Cardinal; begin startTime := GetTickCount; for I := 1 to 10000 do begin Randomize; strResult := ''; for K := 1 to 50 do begin //这里只所以必须加1,是因为SourceStr是从1开始的,而Random是从0开始的,SourceStr[0]就会报错,SourceStr[63]也会报错 strResult := strResult + SourceStr[Random(61)+1]; end; end; Label1.Caption := '耗时: ' + (GetTickCount - startTime).ToString; end;
本文来自博客园,作者:del88,转载请注明原文链接:https://www.cnblogs.com/del88/p/6911709.html
分类:
字符串
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人