生成伪随机字符串AZ,0-9

gr8*_*t06 3 ruby random

我怎么能只生成含有n个字符的伪随机字符串A-Z,0-9SecureRandom.base64没有"+","/""="?例如:

(0..n).map {(('1'..'9').to_a + ('A'..'Z').to_a)[rand(36)]}.join
Run Code Online (Sandbox Code Playgroud)

saw*_*awa 12

Array.new(n){[*"A".."Z", *"0".."9"].sample}.join
Run Code Online (Sandbox Code Playgroud)

  • 我可以想到一对:`sample`更优雅,如果被采样的数组的大小发生变化,则无需更改. (2认同)
  • 好奇心,有什么理由对`样本`进行`[rand(36)]` (2认同)