Как сгенерировать случайную строку в Ruby - PullRequest
710 голосов
/ 18 сентября 2008

В настоящее время я генерирую 8-символьную псевдослучайную строку в верхнем регистре для "A" .. "Z":

value = ""; 8.times{value  << (65 + rand(25)).chr}

но он не выглядит чистым и не может быть передан в качестве аргумента, поскольку это не одно утверждение. Чтобы получить строку со смешанным регистром "a" .. "z" плюс "A" .. "Z", я изменил ее на:

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

но это похоже на мусор.

У кого-нибудь есть лучший метод?

Ответы [ 51 ]

0 голосов
/ 18 сентября 2008

Чтобы сделать первое утверждение одним:

(0...8).collect { |n| value  << (65 + rand(25)).chr }.join()
...