我是编程新手,也是Ruby的初学者。我已经做了很多搜索,试图找到我需要的答案,但似乎没有什么能与我正在寻找的东西相匹配。
我需要为以下工作制作一个程序:
重要的是要知道:句子都有几个关键词,而不是每个句子一个
1& 2可以,我已经能够做到了。我的问题在于第3部分。我已经尝试了很长的“if include?”列表参数,但它永远不会结束工作,我知道必须有一个更好的方法来做到这一点。
我对Ruby的掌握(以及一般的编程)是基本的,我不知道它能做什么和不能做什么,所以非常感谢非常感谢任何有用的功能提示或提示。
答案 0 :(得分:0)
如果找到了匹配项,为什么不连续将它从数组/ db中弹出?它将确保不会重复,因为以后不会出现该记录。没有? 请考虑以下代码段:
db=%q(It is hot today), %q(It is going to rain), %q(Where are you, sonny?), %q(sentence contains is and are)
keyw=%w(is am are)
de=[]
keyw.each do |word|
for index in 0...db.length
if db[index].include?(word)
puts "Matched #{word} with #{db[index]}"
de<<index
end
end
until de.empty?
db.delete_at(de.pop)
end
end
db是数据库示例,keyw包含关键字。
对应输出:
Matched is with It is hot today
Matched is with It is going to rain
Matched is with sentence contains is and are
Matched are with Where are you, sonny?
没有重复。 :)