将Ruby数组元素用分隔符连接成字符串的一行代码

10

我有一个像这样的数组:

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

我正在寻找一个像这样的单元素数组:

mynewarray = ['value1|value2|value3']

我知道可以使用 each 和字符串拼接来完成,但我想知道是否有一种优美的 Ruby 单行代码实现...

6个回答

28
你可以使用Array#join方法。
 myarray.join('|')

Array#join文档:

将数组中的每个元素转换为字符串,并使用sep分隔符连接它们,返回一个字符串。

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

这个答案将提供字符串,但不会以单元素数组的形式返回它。 - Ben Hull

4
如何...
mynewarray = [myarray.join('|')]

1

请看这里:

[myarray.join('|')]

应该可以了。


1
你可以尝试下面的方法:
[myarray.join("|")]

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

将输出
["a|b|c"]

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

将输出

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

使用 Ruby 1.9.x


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接