如何在Ruby中生成随机字符串

我目前正在为“A”生成一个8个字符的伪随机大写字符串。。“Z”:

value=”“;8.乘以{value<<(65+rand(25)).chr}

但是它看起来不干净,并且不能作为参数传递,因为它不是一个单独的语句。要获得大小写混合的字符串“a”。。“z”加上“A”。。“Z”,我把它改成:

value=”“;8.乘以{value<<((兰特(2)=1?65:97)+兰特(25)).chr}

但它看起来像垃圾

有人有更好的方法吗

(0…8).map{(65+rand(26)).chr}.join

我花太多时间打高尔夫球了

(0…50).map{('a'..'z')。到_a[rand(26)]}。加入

最后一个更令人困惑,但更灵活,浪费更少的周期:

o=[('a'..'z'),('a'..'z')]。映射(&:到a)。展平
字符串=(0…50).map{o[rand(o.length)]}.join

如果要生成一些随机文本,请使用以下命令:

50.times.map{(0…(rand(10))).map{('a'..'z')。to_a[rand(26)]}.join}.join(")

此代码生成50个单词长度小于10个字符的随机单词字符串,然后用空格连接

发表评论