Управление CSV-строками с уникальными значениями - PullRequest
3 голосов
/ 19 марта 2012

У меня есть строка значений, разделенных запятыми, порядок которых не важен, но уникальность значений есть.Я хочу добавить значения в строку, и я получаю что-то вроде

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

, которое эффективно, но выглядит ужасно и идет строканесомненно, не эффективен.Какой простой способ сделать это?

Ответы [ 3 ]

4 голосов
/ 19 марта 2012

вы можете использовать | (союз) оператор. например,

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

, который должен вернуться,

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

| (оператор объединения) не будет работать со строками. так что в вашем случае вы можете использовать

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

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

1 голос
/ 19 марта 2012
require 'csv'
str = "1,2,3,1"
ar = CSV.parse(str)
ar << ["1","4"]
p ar.flatten.uniq.to_csv
0 голосов
/ 19 марта 2012
[*"1,2,3,1".split(","), "1", "4"].uniq.join ","
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...