在字符串中的每个第n个逗号后插入

时间:2016-12-06 11:05:49

标签: ruby-on-rails ruby

我有以下字符串和数组:

a = '1, 2, 3, 4, 5, 6, 7, 8'
b = ['9', '10', '11', '12']

我需要在每个第n个逗号(本例中为2)之后插入一个b元素到a中,结果是:

a = '1, 2, 9, 3, 4, 10, 5, 6, 11, 7, 8, 12'

我一直在玩各种形式的scan,但似乎无法产生预期的效果。

我有一个简单的方法吗?

1 个答案:

答案 0 :(得分:0)

使用a.split(', '),上一个问题中的任何解决方案以及join(', ')

获得@Stefan的学分:

a = '1, 2, 3, 4, 5, 6, 7, 8'
b = ['9', '10', '11', '12']

enum = Enumerator.new do |y|
  e1 = a.split(',').each
  e2 = b.each
  loop do
    y << e1.next.strip << e1.next.strip << e2.next
  end
end

puts enum.to_a.join(', ')

#=> 1, 2, 9, 3, 4, 10, 5, 6, 11, 7, 8, 12

如果您确定每个数字都用逗号空格分隔,您也可以使用此功能:

enum = Enumerator.new do |y|
  e1 = a.split(', ').each
  e2 = b.each
  loop do
    y << e1.next << e1.next << e2.next
  end
end