Ale*_*pov 2 ruby string methods character
我想转换'abcdef'成'aBCdeF'或'AbCDEF'或任何其他大小写字符的随机组合。我需要将它与任何给定的字符串一起使用。我知道String的#upcase,#swapcase,#capitalize等等,但我不认为这是一个内置的做我想要的方式。我想出的最好的东西是这样的:
'abcdef'.chars.map { |c| c.send [:upcase, :downcase][rand 2] }.join
Run Code Online (Sandbox Code Playgroud)
有什么更好的想法吗?
小智 5
你可以尝试这样的事情,x你的字符串在哪里:
x.chars.map { |c| (rand 2) == 0 ? c : c.upcase }.join
Run Code Online (Sandbox Code Playgroud)
该map方法采用随机生成0或1为每个字符生成的块。如果0,则按原样返回字符,否则将变为大写。
'abcdef'.gsub(/./){|s| s.send(%i[upcase downcase].sample)}
# => "aBCdEf"
Run Code Online (Sandbox Code Playgroud)