2016-05-15 13 views
0

私はRubyに新しく、文字列を取り、各文字を配列として返すメソッドを作成しようとしています配列内の独自のインデックス私はそれが文字列を配列に変換すると、1つのオブジェクトの配列が1つのインデックスに詰め込まれたままです。

=>["a", "b", "c", "a", "b", "c"] 

を返したい

def validate_word(word) 
    w=[] 
    word.downcase! 
    w << word.split(//) 
    return w 
end 
validate_word("abcABC") 

=> [["a", "b", "c", "a", "b", "c"]] 

は私のコードを見ていただきありがとうございます。

答えて

3

コードでは、String#splitが必要な配列を返すので、新しい配列を作成する必要はありません。あなたが書くことができるようにまた、Rubyは、デフォルトではメソッドの最後の文字列を返します。

def validate_word(word) 
    word.downcase! 
    word.split(//) # or you can chain methods: word.downcase.split('') 
end 
validate_word("abcABC") 
=> ["a", "b", "c", "a", "b", "c"] 

注:ソースオブジェクトを変更したい場合例を除き、感嘆符(downcase!)を持つメソッドを使用しないでください。代わりの方法(downcase)を使用してください。

+0

これは完全に機能しますが、もっと多くの機能を含めるようにメソッドを拡張すると、さらに操作できる配列オブジェクトが必要になります。申し訳ありませんが私の質問でより正確ではなかった。 – SinGar

+1

@SinGar配列を追加することなくメソッドを拡張することができます。変数( 'chars = word.split( '')')を作成するか、配列( 'word.split( '')。manipulation')で他のメソッドを呼び出してください。 – Ilya

関連する問題