我有以下字符串和数组:
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,但似乎无法产生预期的效果。
我有一个简单的方法吗?
答案 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