题
我需要一个收集那就像是一个集。基本上我是扫描一长串和添加词语,以收集,但我希望能够检测时有重复的。
如果设置不是可用的,什么是最有效的方式这样做的红宝石?核仁巧克力饼点,例如码。
解决方案
来自文档:
a = [ "a", "a", "b", "b", "c" ]
a.uniq #gets you ["a", "b", "c"]
a.uniq.uniq! #gets you nil (no duplicates :)
其他提示
有一组类中的红宝石。你可以用它,像这样:
require 'set'
set = Set.new
string = "a very very long string"
string.scan(/\w+/).each do |word|
unless set.add?( word )
# logic here for the duplicates
end
end
虽然,我在想,如果你想要最实例,在这种情况下下面的例子将是更好:
instances = Hash.new { |h, k| h[k] = 0 }
string.scan(/\w+/).each do |word|
instances[word] += 1
end
上的Set.html
不隶属于 StackOverflow