Comment découper une chaîne en x morceaux égaux en ruby

J'ai une chaîne en ruby comme ceci:

str = "AABBCCDDEEFFGGHHIIJJ01020304050607080910"
# 20 letters and 20 numbers in this case

Je veux partager ce dans la moitié, ce que je peux faire comme ceci:

str[0, str.length/2]

ou

str.split(0, str.length/2)

Après cela, j'ai besoin de faire des tableaux avec les caractères, mais avec une longueur de 2 pour chaque élément comme ceci:

["AA", "BB", "CC", "DD", "EE", "FF", "GG", "HH", "II", "JJ"],
[01, 02, 03, 04, 05, 06, 07, 08, 09, 10]

Le problème est, je ne peux pas trouver une manière concise pour convertir cette chaîne. Je peux faire quelque chose comme ceci

arr = []
while str.length > 0 do
  arr << str[0, 1]
  str[0, 1] = ""
end

mais je veux quelque chose comme str.split(2), et la longueur de la chaîne peut changer à tout moment.

OriginalL'auteur Nicos Karalis | 2012-08-20