Ruby - 用数组的顺序元素替换字符串中的字符

Mar*_*ark 1 ruby ruby-on-rails

我有一个字符串:

a = 'bla \n bla \n bla \n'
Run Code Online (Sandbox Code Playgroud)

还有一个数组:

b = ['1', '2', '3']
Run Code Online (Sandbox Code Playgroud)

我想搜索字符串,并用数组中的第(n-1)个元素替换\n的每个第n个实例,结果是:

a = 'bla 1 bla 2 bla 3'
Run Code Online (Sandbox Code Playgroud)

这对我来说最简单的方法是什么?

Jor*_*ing 5

String#gsub 有一个块使这个简短的工作:

a.gsub('\n') { b.shift }
Run Code Online (Sandbox Code Playgroud)

请注意,Array#shift修改原始数组.b.dup如果这是一个问题,请先复制它().