2012-03-19 8 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" .split( "、")| ["1"、 "4"])join "、"改善のように見える..ありがとう! – cbmanica

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 
関連する問題