如何在Ruby中将数组格式化为每五个元素换行?

4

我是一名有用的助手,可以为你翻译文本。

所以我有一个数组。我想把第一个元素取出来并换行。所以我的数组是 =

a = [0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 

如何将其打印为:
00000
00000
00000
00000
00000

谢谢。

当你说“像这样格式化”,你是指像这样打印它?还是将其存储在变量中? - Arindam
抱歉,您的问题不是很清晰。您的意思是当您打印数组内容时,您想要打印5个元素,然后换到新的一行吗? - Nicholas Smith
抱歉,我的意思是要这样打印。 - psharma
@NicholasSmith 是的,我想要打印5个元素,然后移到新的一行。对于造成的困惑,我很抱歉。 - psharma
3个回答

12

只需使用 Enumerator 类的 each_slice 方法将原始数组分割成每个包含五个元素的数组,再使用 Array 类的 join 方法将这些五个元素的数组转换为字符串:

a.each_slice(5) { |x|
  puts x.join
}

1
a.each_index do |i|
  puts if i%5 == 0
  print a[i]
end

1
a = (1..25).to_a    
(a.size / 5).times {|i| puts a.slice(i*5, 5).join}

12345
678910
1112131215
1617181920
2122232425

Array#slice接受索引和长度。在这种情况下,每隔5个元素,切出一段5个元素的片段。Array#join然后将这些元素组合成一个字符串。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接