我使用带有电影线的文本文件。如果用户输入Oz
,我想要输出文件中包含单词Oz
的所有电影。
这是我到目前为止所做的。
puts "Enter the keyword you want to search for: "
keyword = gets
movies_file = File.new("movies.txt", "r")
movies = movies_file.read
movies_list = movies.split(" ")
match_list = []
movies_list.each do |w|
matchObj = w.match(keyword)
if matchObj then
matchlist.push(matchObj.captures[0])
end
end
match_list.each do |title|
puts title
end
答案 0 :(得分:1)
假设您已将文件组织成这样:
Wizard of Oz
Battlefield Earth
Twilight
Ozymandias
然后你可以用这种方式阅读:
lines = File.readlines('movies.txt').map(&:chomp)
然后找到匹配的行:
matches = lines.grep(phrase)
不需要所有each
内容。此外then
上的if
几乎从未放在那里,它只是无用的装饰。