Ruby修改一段字符串

par*_*and 3 ruby string

Ruby的全新内容.这是一个简单的家庭作业.secret_code函数需要接受输入字符串并执行以下操作:

  1. 在空格之前的第一个字母块中,除了第一个字符之外的所有字母都大写
  2. 反转字符串

因此,如果输入是"超级duper",输出应该是"repud REPU".

我将函数编码如下:

def secret_code(input) 
  input.split(" ").first[1..-1].each_char do |i|
    input[i] = i.upcase
  end
  return input.reverse
end
Run Code Online (Sandbox Code Playgroud)

它通过了单元测试,但我想知道是否有更好的方法来编码它.是否可以避免使用循环?我试过了

return input.split(" ").first[1..-1].upcase.reverse
Run Code Online (Sandbox Code Playgroud)

但那并没有奏效.任何关于如何清理它的想法都很感激!

saw*_*awa 8

"super duper".sub(/(?<=.)\S+/, &:upcase).reverse
Run Code Online (Sandbox Code Playgroud)