2012-02-08 51 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

为什么要将数组传递给方法? – 2012-02-08 23:30:44

回答

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 2012-02-09 00:35:11

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

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

考虑Enumerable#grep法的regex一点点。

+0

哦,我忘了说。这是一个我不能使用哈希的任务。它必须是两个对齐的数组。 – user1179092 2012-02-09 00:33:21

相关问题