我试图在一串多个单词中反转每个单词的单词。例如:
“嗨,怎么了”=>“ih stahw pu”
这和我得到的一样接近:
def backwards(s)
s.split.each do |y| y.reverse! end
end
事情是这返回一个数组,而不是一个字符串。我尝试join(' ')
在之后添加,reverse!
但这给了我一个错误。
我试图在一串多个单词中反转每个单词的单词。例如:
“嗨,怎么了”=>“ih stahw pu”
这和我得到的一样接近:
def backwards(s)
s.split.each do |y| y.reverse! end
end
事情是这返回一个数组,而不是一个字符串。我尝试join(' ')
在之后添加,reverse!
但这给了我一个错误。
str.split(' ').map{|w| w.reverse}.join ' '
更清洁的版本:
str.split.map(&:reverse).join ' '
不知道为什么人们坚持使用split
.
s.gsub(/\w+/, &:reverse)
你应该做:
def backwards(str)
str.split.map(&:reverse).join(' ')
end
你几乎做对了......你必须调用join(' ')
块的结果
def backwards(s)
s.split.map { |word| word.reverse }.join(' ')
end
你想加入 的结果,而each
不是 的结果reverse!
。你需要:
s.split.each {|y| y.reverse!}.join ' '