Rubyで文字列をn文字ごとに区切って配列に格納する

String#each_charとEnumerable#each_sliceを使えば簡単にできる.

"ABCDEFGH".each_char.each_slice(3).map{|a| a.join} #=> ["ABC", "DEF", "GH"]

ただしRuby 1.8.7以降が必要.

each_charやeach_sliceなどのイテレータメソッドはブロックを与えないで呼び出すとEnumeratorオブジェクトを返すので,これに対してさらにEnumerableのイテレータメソッドを適用したり,外部イテレータとして使ったりすることができる.知っておくと結構便利.