ランダムな平仮名の文字列を生成する


Ruby でランダムな平仮名の文字列を作る方法で悩む。別に、Ruby ではなく JavaScript 等でもいいのだが、せっかくだから Ruby で……と思っていたら詰まってしまった。

puts 12354.chr => RangeError

Integer#chr は 0 から 255 の範囲しかとらない。ではどうするかというと、pack を使えばいいようだ

puts [12354].pack('U') => あ

で、完成スクリプトが

s = ''
4.times {
s << [0x3041 + rand(0x3094 - 0x3041)].pack('U')
}
puts s

となる。

……と、ここまで書いていて思い出したのだが、このスクリプトはまさに "里見の謎型ネームジェネレータ" そのものではないか。里見の謎については Wikipedia を参照

カテゴリー: Ruby   パーマリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>