概要
予め指定した文字群を使って、任意の長さのランダム文字列を作る。
<手順>
- 文字群を文字列として準備
 →chars = "ABCDE"
- 配列を準備
 →array = Array.new(10)
- ランダム文字列を生成
 →(array.map! {|e| chars[rand(chars.length)]}).join
考え方
ランダム文字列に使う文字群を文字列として準備する。
chars = "ABCDE"
ランダム文字列長と同じ要素数の配列を準備する。
array = Array.new(10)
| 1 2 3 4 | array = Array.new(10) p array # [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil] | 
配列をランダムに選んだ文字で埋める。
array.map! {|e| chars[rand(chars.length)]}
| 1 2 3 4 | array.map! {|e| chars[rand(chars.length)]} p array # ["B", "B", "D", "A", "C", "B", "E", "E", "E", "D"] | 
配列を文字列に変換する。
p array.join
| 1 2 3 | p array.join # "BBDACBEEED" | 
実装例
数字と英大文字・小文字を使って20文字のランダム文字列を生成。
| 1 2 3 4 5 6 | chars = ("0".."9").to_a.join + ("A".."Z").to_a.join + ("a".."z").to_a.join array = Array.new(20) str = (array.map! {|e| chars[rand(chars.length)]}).join p str # "3JRIjPZPOcsHRLotcAye" |