如何在Ruby中随机化字符串的大小写?

时间:2014-03-26 09:06:36

标签: ruby string methods character

我想将'abcdef'转换为'aBCdeF''AbCDEF'或任何其他大小写字符的随机组合。我需要在任何给定的字符串中使用它。我知道String的{​​{1}},#upcase#swapcase等等,但我认为没有内置的方法来做我想要的事情。我想出的最好的是:

#capitalize

有更好的想法吗?

2 个答案:

答案 0 :(得分:3)

你可以尝试这样的事情,其中​​x是你的字符串:

x.chars.map { |c| (rand 2) == 0 ? c : c.upcase }.join

map方法采用一个块,为每个字符随机生成01。如果0,则按原样返回char,否则它将变为大写。

答案 1 :(得分:3)

'abcdef'.gsub(/./){|s| s.send(%i[upcase downcase].sample)}
# => "aBCdEf"