Menu
Coddy logo textTech

Itérer sur les chaînes de caractères

Fait partie de la section Fondamentaux du Journey Ruby de Coddy — leçon 67 sur 88.

Tout comme les tableaux, les chaînes de caractères en Ruby peuvent être parcourues caractère par caractère. La méthode each_char vous permet de traiter chaque caractère d'une chaîne individuellement.

Voici comment cela fonctionne :

word = "Ruby"

word.each_char do |char|
  puts char
end

Ceci affiche chaque caractère sur une ligne séparée : R, u, b, y. La variable de bloc char contient un caractère à la fois au fur et à mesure que l'itérateur parcourt la chaîne de caractères.

Si vous avez besoin à la fois du caractère et de sa position, utilisez each_char.with_index :

word = "Hi"

word.each_char.with_index do |char, index|
  puts "#{index}: #{char}"
end

Cela affiche :

0: H
1: i

Une autre méthode utile est chars, qui convertit une chaîne de caractères en un tableau de ses caractères. Cela vous permet d'utiliser toutes les méthodes de tableau que vous avez déjà apprises :

letters = "abc".chars
puts letters  # Affiche : a, b, c

Ces méthodes sont utiles lorsque vous avez besoin d'analyser du texte, de compter des caractères spécifiques ou de transformer des chaînes de caractères caractère par caractère.

challenge icon

Défi

Facile

Lisez une seule ligne d'entrée contenant une chaîne de caractères (par exemple, hello).

Utilisez each_char.with_index pour itérer à travers la chaîne et afficher chaque caractère avec sa position. Chaque ligne doit suivre ce format : Position 0: h

Après avoir affiché tous les caractères avec leurs positions, affichez le nombre total de caractères dans la chaîne sur une nouvelle ligne dans ce format : Total characters: 5

Par exemple, si l'entrée est hello, la sortie devrait être :

Position 0: h
Position 1: e
Position 2: l
Position 3: l
Position 4: o
Total characters: 5

Si l'entrée est Ruby, la sortie devrait être :

Position 0: R
Position 1: u
Position 2: b
Position 3: y
Total characters: 4

Si l'entrée est code, la sortie devrait être :

Position 0: c
Position 1: o
Position 2: d
Position 3: e
Total characters: 4

Si l'entrée est A, la sortie devrait être :

Position 0: A
Total characters: 1

Aide-mémoire

Utilisez each_char pour itérer sur chaque caractère d'une chaîne :

word = "Ruby"

word.each_char do |char|
  puts char
end

Utilisez each_char.with_index pour accéder à la fois au caractère et à sa position :

word = "Hi"

word.each_char.with_index do |char, index|
  puts "#{index}: #{char}"
end

Utilisez chars pour convertir une chaîne en un tableau de caractères :

letters = "abc".chars
puts letters  # Affiche : a, b, c

Essayez vous-même

# Lire l'entrée
str = gets.chomp

# TODO: Écrivez votre code ci-dessous
# Utilisez each_char.with_index pour parcourir la chaîne
# Affichez chaque caractère avec sa position au format : Position X: char


# Affichez le nombre total de caractères au format : Total characters: X
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux