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