92 votes

itération sur chaque caractère d'une chaîne de caractères dans ruby 1.8.6 (each_char)

Je suis novice en ruby et j'essaie actuellement d'opérer sur chaque caractère séparément à partir d'une chaîne de base en ruby. J'utilise ruby 1.8.6 et je voudrais faire quelque chose comme.. :

"ABCDEFG".each_char do |i|
  puts i
end

Cela produit une erreur de méthode non définie `each_char'.

Je m'attendais à voir une sortie verticale de :

A
B
C
D
..etc

Est-ce que le each_char définie uniquement pour la version 1.9 ? J'ai essayé d'utiliser la méthode simple each mais le bloc édite simplement la chaîne entière sur une seule ligne. La seule façon que j'ai trouvée pour faire cela, qui est assez peu pratique, est de créer un tableau de caractères depuis le début :

['A','B','C','D','...'].each do|i|
  puts i
end

Cela produit le résultat souhaité :

A
B
C
..etc

Existe-t-il un moyen d'obtenir ce résultat en utilisant une chaîne non modifiée pour commencer ?

Je pense que l'équivalent Java est :

for (int i = 0; i < aString.length(); i++){
  char currentChar = aString.charAt(i);
  System.out.println(currentChar);
}

1 votes

"asfds".char.each....

1voto

G.B Points 767

Mais vous pouvez désormais faire beaucoup plus :

a = "cruel world"

a.scan(/\w+/)        #=> ["cruel", "world"]

a.scan(/.../)        #=> ["cru", "el ", "wor"]

a.scan(/(...)/)      #=> [["cru"], ["el "], ["wor"]]

a.scan(/(..)(..)/)   #=> [["cr", "ue"], ["l ", "wo"]]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X