Ruby - >如何并排连接和打印多行字符串

时间:2015-02-12 23:08:22

标签: ruby

如果我有这两个多行字符串变量:

x = <<-eos
11111
1111
111
11
1
eos

y = <<-eos
2
22
222
2222
22222
eos

打印每一行的最佳方法是什么,所以我会得到:

111112 
111122
111222
112222
122222

3 个答案:

答案 0 :(得分:1)

您需要在换行符上同时使用两个字符串和split来制作数组。然后,您必须将它们zip放在一起,以便第一个中的每个索引元素与第二个数组中的相同索引元素组合在一起。接下来,您希望map生成的数组join您创建的内部数组。最后,您必须最后一次join组合阵列中的所有元素并放回换行符。

x.split("\n").zip(y.split("\n")).map{|l| l.join}.join "\n"

答案 1 :(得分:1)

这就像枚举每个数组并在删除换行符时组合值一样简单:

x.each_line.with_index do |line, index| 
  puts line.strip + y.lines[index].strip
end

# => 
  111112
  111122
  111222
  112222
  122222

答案 2 :(得分:0)

另一种方式:

yl = y.lines
puts x.lines.each_with_object('') { |line, str| str << line.chomp << yl.shift }
  # 111112
  # 111122
  # 111222
  # 112222
  # 122222