如何从数组的每个子数组中打印多行?

时间:2015-02-17 17:09:10

标签: ruby arrays

我正在尝试解决一个整数并将它们转换成堆叠的大数字字符串的拼图。我要去存储每个数字的数组的路径,试图将子数组的每一行组合成创建最终连接的字符串。所以,

digits = [
["-**--",
"*--*-",
"*--*-",
"*--*-",
"-**--",
"-----"],

["--*--",
"-**--",
"--*--",
"--*--",
"-***-",
"-----"]
]

digits.each_with_index do |number, index|
    number.each_with_index do |line, row|
        print index, row, line, "\n"
    end
end

给了我:

00-**--
01*--*-
02*--*-
03*--*-
04-**--
05-----
10--*--
11-**--
12--*--
13--*--
14-***-
15-----

我如何做到这一点让它给我:

00-**----*--
01*--*--**--
02*--*---*--
03*--*---*--
04-**---***-
05----------

2 个答案:

答案 0 :(得分:1)

你可以做到

digits.transpose.each_with_index { |a, index| puts "#{index}#{a.join}" }

输出:

0-**----*--
1*--*--**--
2*--*---*--
3*--*---*--
4-**---***-
5----------

确切输出:

digits.transpose.each_with_index { |a, index| puts "%02d%s" % [index,a.join] }

输出:

00-**----*--
01*--*--**--
02*--*---*--
03*--*---*--
04-**---***-
05----------

答案 1 :(得分:0)

digits[0].size.times do |i|
  printf "%02i%s%s\n", i, digits[0][i], digits[1][i]
end

给出

00-**----*--
01*--*--**--
02*--*---*--
03*--*---*--
04-**---***-
05----------