2016-04-02 18 views
0

文字列の各単語を逆転しようとしています。#joinメソッドを使用して文字列を配列に戻す

def reverse(string) 
    words=string.split(" ") 
    words.each do |word| 
    new_string = word.reverse!.join(" ") 
    end 
end 

reverse('hello from the other side') 

誰かがこれがなぜ機能しないのか教えていただけますか?

+0

どのような意味では、それが動作しませんか? – sawa

答えて

2

.join(" ")は間違った場所にあります。あなたの最後から二番目の行の末尾に移動:それは何もしませんので、

def reverse(string) 
    words=string.split(" ") 
    words.each do |word| 
    word.reverse! 
    end.join(" ") 
end 

reverse('hello from the other side') 
    #=> "olleh morf eht rehto edis" 

私はnew_string =を削除しました。

あなたはルビーで経験を積むとして、あなたは、次のようにあなたがよりコンパクトに、これを書くことができるでしょう:

def reverse(string) 
    string.split.map(&:reverse).join(" ") 
end 
+4

私は 'string.gsub(/ \ S + /、&:reverse)'に行きます。 – sawa

+0

@sawa、それはとてもいいです。私は新しいことを学びました。 –

関連する問題