2012-03-19 67 views
3

我有一串由逗号分隔的值,其顺序不重要,但值的唯一性是。我想值添加到字符串,我结束了类似管理唯一值的csv字符串

jruby-1.6.7 :009 > ("1,2,3,1".split(",").to_set << "1" << "4").to_a.join "," 
    => "1,2,3,4" 

这是有效的,但看起来很可怕,去串 - >排列 - >设置 - >排列 - >字符串,这是毫无疑问无效。什么是简单的方法来做到这一点?

回答

4

您可以使用| (联盟)运营商。 例如

[ "1", "2", "3" ,"1"] | [ "1", "4"] 

这应当返还,

["1","2","3","4"] 

| (联合运算符)不会在字符串上工作。所以在你的情况下,可以使用

"1,2,3,4".split(",") | "1,4".split(",") 

=> [ “1”, “2”, “3”, “4”]

+0

嗯,(“1,2 ,3,1“.split(”,“)| [”1“,”4“])。加入”,“看起来像是一个改进..谢谢! – cbmanica 2012-03-19 12:03:15

0
[*"1,2,3,1".split(","), "1", "4"].uniq.join "," 
1
require 'csv' 
str = "1,2,3,1" 
ar = CSV.parse(str) 
ar << ["1","4"] 
p ar.flatten.uniq.to_csv