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
endCeci 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}"
endCela affiche :
0: H
1: iUne 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, cCes 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.
Défi
FacileLisez 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: 5Si l'entrée est Ruby, la sortie devrait être :
Position 0: R
Position 1: u
Position 2: b
Position 3: y
Total characters: 4Si l'entrée est code, la sortie devrait être :
Position 0: c
Position 1: o
Position 2: d
Position 3: e
Total characters: 4Si l'entrée est A, la sortie devrait être :
Position 0: A
Total characters: 1Aide-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
endUtilisez 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}"
endUtilisez chars pour convertir une chaîne en un tableau de caractères :
letters = "abc".chars
puts letters # Affiche : a, b, cEssayez 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: XCette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Récapitulatif - Logique simpleOpérateurs logiques, partie 3Opérateurs logiques, partie 47Calculateur de partage de facture
Message de bienvenueSaisie de l'utilisateur10FizzBuzz avec une variante
Présentation du jeuLa méthode FizzBuzz2Variables et types de données
Nombres et variablesType de données StringType de données BooleanType de données SymbolVérification des types de donnéesConventions de nommageRécapitulatif - Création de variables5Prise de décision
Instruction IfIf - ElseRécapitulatif - Calculatrice simpleIf - Else imbriquésInstruction Unless8Boucles
Boucle For avec des intervallesBoucle WhileBreakNextRécapitulatif - FactorielleBoucle TimesBoucle UntilBoucles imbriquéesRécapitulatif - Entrée dynamique3Les opérateurs, partie 1
Opérateurs arithmétiquesOpérateur moduloRaccourcis arithmétiquesRécapitulatif - Calculs simplesOpérateurs de comparaison6Entrées/Sorties de base
Sortie avec putsSortie avec print et pSortie avec des variablesEntrée avec getsLa méthode chompConversion de typesRécapitulatif - Calculateur d'âgeRécapitulatif - Vrai ou Faux9Méthodes
Définir une méthodeParamètres de méthodeValeurs de retourRécapitulatif - Méthode SigmaRécapitulatif - Méthode de validationValeurs de paramètres par défaut12Itérer sur les collections
L'itérateur EachEach avec indexItérer sur les chaînes de caractèresMap et Collect