我有一组数字123456789
我正在编写一个循环,所以对于每3个数字/字符,它会插入一个逗号,然后开始一个新行。
我会使用什么类型的循环?我如何告诉红宝石每3个数字? "123456.each_char.limit(3)"
?我知道限制是不正确的,但希望我能得到这个想法。
答案 0 :(得分:2)
puts 123456789.to_s.gsub(/(.{3})/,"\\1,\n")
结果:
123,
456,
789,
替代循环方式:
"123456789".each_char.with_index(1) do |item, index|
if index % 3 == 0
print item + ",\n"
else
print item
end
end
答案 1 :(得分:1)
如果数字组是一个字符串,您可以使用Enumerable#each_slice
将字符拆分为3个组,然后将它们连接在一起,然后再打印到控制台:
[21] pry(main)> "123456789".chars.each_slice(3) { |a| p "#{a.join}," }
"123,"
"456,"
"789,"