Ruby 似乎无法替换字符串

Ruby 似乎无法替换字符串,ruby,string,Ruby,String,我希望这个字符串QuickBrownFoxJumpsOvertheLazyDog具有这个字符串QEB NRFZH YOTK CLU GRJMP LSBO QEB IXWV ALD或任何特殊字符的空格,只要它用第二个字符串字符替换第一个字符串字符。我想用第一个字符串替换间隔字符串。类似这样的内容: target = "THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG" source = "QEB NRFZH YOLTK CLU GRJMP LSBO QEB IXWV ALD"

我希望这个字符串QuickBrownFoxJumpsOvertheLazyDog具有这个字符串QEB NRFZH YOTK CLU GRJMP LSBO QEB IXWV ALD或任何特殊字符的空格,只要它用第二个字符串字符替换第一个字符串字符。我想用第一个字符串替换间隔字符串。

类似这样的内容:

target = "THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG"
source = "QEB NRFZH YOLTK CLU GRJMP LSBO QEB IXWV ALD"
new_target = source.split(' ').map { |partial| target.slice!(0,partial.length) }.join(' ') 
new_target
更新代码,感谢@bosskovic的评论

chars = "THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG".chars
"QEB NRFZH YOLTK CLU GRJMP LSBO QEB IXWV ALD".gsub(/\w/){chars.shift}


您可以拆分第二个字符串,然后为每个单词计算字符数,然后使用获取的长度解析第一个字符串,并且每次都在一个空格处对其进行解析。您可以显式地说明您想要的结果字符串吗?从你的描述中不清楚。你的问题是什么?谢谢大家的回答,尤其是@sawa可能更容易使用正则表达式,但我对它的了解有限;也许你应该映射而不是迭代,然后进行连接,这样会更干净。new|u target=source.split“”。映射{partial | target.slice!0,partial.length}。连接''很好,谢谢!我仍然有很多东西要学,我明白了:谢谢,但我不会在最后的作品中使用它,但我从中学到了很多。谢谢上面的gusy为我提供了更简单的答案,但谢谢你的时间和回答。干杯
chars = "THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG"
"QEB NRFZH YOLTK CLU GRJMP LSBO QEB IXWV ALD".gsub(/\w/){chars.slice!(0)}
chars = "THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG"
"QEB NRFZH YOLTK CLU GRJMP LSBO QEB IXWV ALD".gsub(/\w/).with_index{|_, i| chars[i]}
s = "THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG"
s2 = "QEB NRFZH YOLTK CLU GRJMP LSBO QEB IXWV ALD"
char = ' '

s2.split.each_with_index do |_count, index|
  char_location = s2.index(char)
  s.insert(char_location + index, char) if char_location
  s2.sub!(char, '')
end

=> THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG