2012-02-08 9 views
0
puts "Please Enter First Initial..." 
    initial = gets 
    first_letter(name, age, initial) 

    def first_letter(x, y, z) 
     index = 0 
     while index < x.length 
     --->if z == (x[index]) 
     puts "#{x[index]} #{y[index]}" 
     end 
     index += 1 
     end 
    end 

本質的に私がやっているのは、上記のコードを使って配列から単語を取り出し、その文字列の最初の文字を照合することです。本質的には、ユーザーに手紙を要求し、その文字を配列の各文字列の最初の文字と照合します。マークされた行は、文字列の最初の文字に対して文字をチェックするはずです。それが文字に等しい場合、プログラムはそのエントリーの名前と年齢を記入することです。配列から文字列を引き出し、最初の文字を確認するにはどうすればよいですか?

+1

なぜ配列にメソッドを渡したいのですか? –

答えて

5

あなたの質問は分かりにくいですが、次のコードは、最初の文字がaの配列からすべての文字列を選択します。多分これは正しい軌道に乗ってあなたを取得:

a #=> ["a", "b", "c", "aa", "bb", "cc", "aaa", "bbb", "ccc"] 
a.select { |x| x[0] == ?a } #=> ["a", "aa", "aaa"] 
# or 
a.select { |x| x.start_with? 'a' } #=> ["a", "aa", "aaa"] 
+0

ありがとうございます。それは私がそれを把握するのを助けた! – user1179092

3
a = %w{ axxx bxxx aaaa cccc azz } 
# => ["axxx", "bxxx", "aaaa", "cccc", "azz"] 

a.grep(/^a/) 
# => ["axxx", "aaaa", "azz"] 

regexの少しでEnumerable#grep方法を考えてみましょう。

+0

ああ、私は言うのを忘れてしまった。これは私がハッシュを使用することができない割り当てです。それは2つの配列を配列する必要があります。 – user1179092

関連する問題