如果我有像
这样的数组names = ["John", "Sam", "Sandy", "Andrew", "Charlie"]
我必须编写一个接收数组作为参数的方法。在该方法内部,使用每个方法迭代数组。如果名称以“S”开头,则输出消息。
我该怎么做呢?到目前为止我只有
names.each do |i|
puts i
end
答案 0 :(得分:3)
Ruby 1.9.2引入了start_with?
,它将一个字符串作为参数引入并检查其在另一个字符串中的存在。
在你的情况下,你可以这样做。
names.each do |name|
puts 'output a message' if name.start_with?('S')
end
但是对于更真实的场景,你应该做两件事。
.strip
方法跟踪空格,然后搜索。所以你应该像这样搜索更实用的场景。
names = ["John", "sam", " Sandy", "Andrew", "Charlie"]
names.each do |name|
puts 'output a message' if name.strip.start_with?('s', 'S')
end
答案 1 :(得分:2)
您可以尝试使用start_with?
:
names = ["John", "Sam", "Sandy", "Andrew", "Charlie"]
names.each do |name|
puts 'output a message' if name.start_with?('S')
end
# output a message (for Sam)
# output a message (for Sandy)
答案 2 :(得分:0)