1

我试图在一串多个单词中反转每个单词的单词。例如:

“嗨,怎么了”=>“ih stahw pu”

这和我得到的一样接近:

def backwards(s)
  s.split.each do |y| y.reverse! end
end

事情是这返回一个数组,而不是一个字符串。我尝试join(' ')在之后添加,reverse!但这给了我一个错误。

4

5 回答 5

6
str.split(' ').map{|w| w.reverse}.join ' '

更清洁的版本:

str.split.map(&:reverse).join ' '
于 2013-02-11T10:24:29.680 回答
6

不知道为什么人们坚持使用split.

s.gsub(/\w+/, &:reverse)
于 2013-02-11T10:53:30.040 回答
2

你应该做:

def backwards(str)
  str.split.map(&:reverse).join(' ')
end
于 2013-02-11T10:24:47.477 回答
1

你几乎做对了......你必须调用join(' ')块的结果

def backwards(s)
  s.split.map { |word| word.reverse }.join(' ')
end
于 2013-02-11T10:24:59.637 回答
0

你想加入 的结果,而each不是 的结果reverse!。你需要:

s.split.each {|y| y.reverse!}.join ' '
于 2013-02-11T10:24:51.847 回答