我有一串由逗号分隔的值,其顺序不重要,但值的唯一性是。我想值添加到字符串,我结束了类似管理唯一值的csv字符串
jruby-1.6.7 :009 > ("1,2,3,1".split(",").to_set << "1" << "4").to_a.join ","
=> "1,2,3,4"
这是有效的,但看起来很可怕,去串 - >排列 - >设置 - >排列 - >字符串,这是毫无疑问无效。什么是简单的方法来做到这一点?
我有一串由逗号分隔的值,其顺序不重要,但值的唯一性是。我想值添加到字符串,我结束了类似管理唯一值的csv字符串
jruby-1.6.7 :009 > ("1,2,3,1".split(",").to_set << "1" << "4").to_a.join ","
=> "1,2,3,4"
这是有效的,但看起来很可怕,去串 - >排列 - >设置 - >排列 - >字符串,这是毫无疑问无效。什么是简单的方法来做到这一点?
您可以使用| (联盟)运营商。 例如
[ "1", "2", "3" ,"1"] | [ "1", "4"]
这应当返还,
["1","2","3","4"]
| (联合运算符)不会在字符串上工作。所以在你的情况下,可以使用
"1,2,3,4".split(",") | "1,4".split(",")
=> [ “1”, “2”, “3”, “4”]
[*"1,2,3,1".split(","), "1", "4"].uniq.join ","
require 'csv'
str = "1,2,3,1"
ar = CSV.parse(str)
ar << ["1","4"]
p ar.flatten.uniq.to_csv
嗯,(“1,2 ,3,1“.split(”,“)| [”1“,”4“])。加入”,“看起来像是一个改进..谢谢! – cbmanica 2012-03-19 12:03:15