こんな感じで実装してみた。もうちょとすっきりするんぢゃないだろうか、というモヤモヤした感じが残る。
あと。これはString
特化の実装。配列のばあいは別の方法が必要。
コードはGitHubにも置いてあります。
class String def divide_into(n) scan(/.{1,#{(size + n - 1) / n}}/) end end
試してみる。
require './divideInto.rb' p "12345678".divide_into 3
実行結果。
$ ruby divideIntoTest.rb ["123", "456", "78"]