1

複数の単語の文字列の各単語の単語を逆にしようとしています。例えば:

「どういたしまして」 => 「ih stahw pu」

これは私が得たのと同じくらい近いです:

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

これは、文字列ではなく配列を返します。join(' ')後に追加しようとしreverse!ましたが、エラーが発生しました。

4

5 に答える 5

6

なぜ人々がを使用することを主張するのかわからないsplit

s.gsub(/\w+/, &:reverse)
于 2013-02-11T10:53:30.040 に答える
6
str.split(' ').map{|w| w.reverse}.join ' '

よりクリーンなバージョン:

str.split.map(&:reverse).join ' '
于 2013-02-11T10:24:29.680 に答える
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 に答える