我想将'abcdef'
转换为'aBCdeF'
或'AbCDEF'
或任何其他大小写字符的随机组合。我需要在任何给定的字符串中使用它。我知道String
的{{1}},#upcase
,#swapcase
等等,但我认为没有内置的方法来做我想要的事情。我想出的最好的是:
#capitalize
有更好的想法吗?
答案 0 :(得分:3)
你可以尝试这样的事情,其中x
是你的字符串:
x.chars.map { |c| (rand 2) == 0 ? c : c.upcase }.join
map
方法采用一个块,为每个字符随机生成0
或1
。如果0
,则按原样返回char,否则它将变为大写。
答案 1 :(得分:3)
'abcdef'.gsub(/./){|s| s.send(%i[upcase downcase].sample)}
# => "aBCdEf"