如果我有这两个多行字符串变量:
x = <<-eos
11111
1111
111
11
1
eos
和
y = <<-eos
2
22
222
2222
22222
eos
打印每一行的最佳方法是什么,所以我会得到:
111112
111122
111222
112222
122222
答案 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