Ruby:如何在最后添加分隔符?

时间:2014-04-22 19:18:39

标签: ruby

实施例,

> arr = ['a', 'b', 'c']
> arr.join('-')
=> "a-b-c"

是否有任何功能可以将另一个分隔符附加到最后一个?

> arr.func('-')
=> "a-b-c-"

谢谢。

4 个答案:

答案 0 :(得分:3)

不,没有像这样的单一功能。你可以像这样破解它:

arr.push('').join('-')

如果您不想更改原始阵列。重复它:

arr.dup.push('').join('-')

答案 1 :(得分:1)

在这种情况下,您实际上并不想要join,而是需要reduce(通常由它的别名inject引用):

arr.reduce('') { |concat, entry| concat + entry + '-' }

当然,还有很多其他方法可以完成这项工作,但拼写出来的方法并不那么聪明,因此当你稍后再回来(或其他人不得不对其进行处理)时,要弄清楚要容易得多)。

答案 2 :(得分:1)

另一种方式(只是说'):

arr.join.gsub(/./) { |c| c + '-' }

仍然喜欢

arr.join('-') << '-'

最简单。

答案 3 :(得分:0)

修改数组。

arr.map{|c| c.concat("-")}.join