2012-02-27 26 views
5

Tôi có một mảng như thế này:của Ruby lót để vượt qua mảng yếu tố vào một chuỗi với dấu phân cách

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

Và tôi đang tìm kiếm một mảng một yếu tố như thế này:

mynewarray = ['value1|value2|value3'] 

tôi biết làm thế nào để làm điều đó bằng cách sử dụng mỗi và concatening trong một chuỗi, nhưng tôi tự hỏi nếu có một oneliner và đẹp Ruby cách làm như vậy ...

Trả lời

19

Bạn có thể sử dụng phương pháp Array # join.

myarray.join('|') 

Array#join doc:

Trả về một chuỗi tạo ra bằng cách chuyển đổi từng phần tử của mảng để một chuỗi, cách nhau bằng tháng chín

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

Câu trả lời này sẽ cung cấp chuỗi, nhưng không trả về chuỗi trong một mảng phần tử đơn. – Beejamin

1

Ở đây bạn đi:

[myarray.join('|')] 

Điều đó sẽ làm điều đó.

1

Bạn có thể thử tiếp theo:

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

chí đầu ra

["aa", "bb", "cc"] 

với Ruby 1.9.x

0
[[ "a", "b", "c" ]*'|'] 

chí đầu ra

["a|b|c"] 
Các vấn đề liên quan