循环通过阵列红宝石

时间:2015-02-13 00:10:01

标签: ruby loops

我有一组数字123456789

我正在编写一个循环,所以对于每3个数字/字符,它会插入一个逗号,然后开始一个新行。

我会使用什么类型的循环?我如何告诉红宝石每3个数字? "123456.each_char.limit(3)"?我知道限制是不正确的,但希望我能得到这个想法。

2 个答案:

答案 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,"