Ruby 中如何生成一个随机字符串?

发布于 2022-08-29 20:27:11 字数 208 浏览 12 评论 0

需要得到一个大小写混合的字符串[a,A-Z,z],目前用的方法是

value = ""; 12.times{value << ((rand(2)==1?65:97) + rand(26)).chr}

感觉还是不好,而且再加混合数字的串就不会了。不知道有没有更好的方法,烦请详细指点!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

丘比特射中我 2022-09-05 20:27:11

(0...50).map{ ('a'..'z').to_a[rand(26)] }.join

下面这个效率更高:
o = [('a'..'z'),('A'..'Z')].map{|i| i.to_a}.flatten;
string = (0...50).map{ o[rand(o.length)] }.join;

古镇旧梦 2022-09-05 20:27:11

加多一个供楼主选择:
rand(36 ** n).to_s(36)
n是生成的字符串的长度

画中仙 2022-09-05 20:27:11

[*('a'..'z'),*('A'..'Z'),*(0..9)].shuffle[0..9].join

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文