Самый простой способ - использовать String#scan
с регулярным выражением /../
, которое соответствует любой паре символов:
n = 12345678
arr = n.to_s.scan(/../)
# => ["12", "34", "56", "78"]
Если вам нужно обработать нечетные числацифры и сохраните последнюю цифру, вместо этого используйте /..?/
:
n = 123456789
arr = n.to_s.scan(/..?/)
# => ["12", "34", "56", "78", "9"]
Альтернативный подход - map
в диапазоне 0...n.to_s.size
с использованием метода Range#step
:
n = 123456789
str = n.to_s
arr = (0...str.size).step(2).map {|i| str[i, 2] }
# => ["12", "34", "56", "78", "9"]
Вы можете увидеть все три подхода в действии на repl.it: https://repl.it/@jrunning/BlissfulAcclaimedStrategy