2012-02-27 11 views
5

के साथ एक स्ट्रिंग में सरणियों तत्वों पारित करने के लिए मैं इस तरह एक सरणी है:रूबी एक लाइनर विभाजक

mynewarray = ['value1|value2|value3'] 

मैं:

myarray = ['value1','value2','value3'] 

और मैं इस तरह एक एक तत्व सरणी के लिए देख रहा हूँ जानते हैं कि प्रत्येक का उपयोग करके और स्ट्रिंग में संयम करने के तरीके को कैसे करें, लेकिन मुझे आश्चर्य है कि क्या ऐसा करने वाला एक ऑनलाइनर और सुंदर रूबी तरीका है ...

उत्तर

19

आप ऐरे # जॉइन विधि का उपयोग कर सकते हैं।

myarray.join('|') 

Array#join doc:

एक स्ट्रिंग के लिए एक स्ट्रिंग, Sep द्वारा अलग सरणी के प्रत्येक तत्व को परिवर्तित करके बनाया देता है।

[ "a", "b", "c" ].join  #=> "abc" 
[ "a", "b", "c" ].join("-") #=> "a-b-c" 
+0

यह उत्तर स्ट्रिंग प्रदान करेगा, लेकिन इसे एकल-तत्व सरणी में वापस नहीं करेगा। – Beejamin

1

ये रहा:

[myarray.join('|')] 

कि यह करना चाहिए।

1

आप अगले कोशिश कर सकते हैं:

[myarray.join("|")] 
0
"aa|bb|cc".scan(/[^\|]+/) 

इच्छा उत्पादन

रूबी 1.9.x के साथ
["aa", "bb", "cc"] 

संबंधित मुद्दे