Parcourir les chaînes
Fait partie de la section Logique et Flux du Journey Ruby de Coddy — leçon 3 sur 56.
Une chaîne Ruby est une séquence de caractères, et vous pouvez itérer directement dessus avec each_char :
"ruby".each_char do |c|
puts c
end
# r
# u
# b
# ySi vous avez également besoin de l'index, utilisez each_char.with_index :
"hi".each_char.with_index do |c, i|
puts "#{i}: #{c}"
end
# 0: h
# 1: iPour obtenir un tableau de caractères en une seule fois, appelez chars :
"ruby".chars # ["r", "u", "b", "y"]Défi
FacileLisez une seule ligne d'entrée. Comptez le nombre de voyelles (a, e, i, o, u, insensible à la casse) qu'elle contient, et affichez :
Vowels: <count>Pour l'entrée Hello Ruby, la sortie est Vowels: 3 : e, o, u. (y n'est pas compté.)
Aide-mémoire
Itérez sur chaque caractère d'une chaîne avec each_char :
"ruby".each_char do |c|
puts c
endUtilisez each_char.with_index pour obtenir également l'index :
"hi".each_char.with_index do |c, i|
puts "#{i}: #{c}"
endConvertissez une chaîne en un tableau de caractères avec chars :
"ruby".chars # ["r", "u", "b", "y"]Essayez vous-même
input = gets.chomp
count = 0
# À FAIRE : itérer sur chaque caractère et compter les voyelles
puts "Vowels: #{count}"
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique et Flux
1Les chaînes de caractères en profondeur
Aperçu des méthodes de chaînesInterpolation de chaînesParcourir les chaînesSplit et JoinRécapitulatif - String Weaver4Blocs, Procs & Lambdas
Qu'est-ce qu'un bloc ?do..end vs AccoladesLe mot-clé yieldParamètres de blocProcs et LambdasRécapitulatif - Itérateur personnalisé7Hashes - Partie 2
Hash.new avec des valeurs par défautItérer sur les HashesHashes imbriquésFusion et transformationRécapitulatif - Compteur de fréquence10Projet - Dossiers étudiants
Présentation du projetAjouter un étudiant2Intervalles
Qu'est-ce qu'un intervalle ?Méthodes d'intervalleLes intervalles dans Case / WhenRécapitulatif - Pratique des intervalles5La puissance d'Enumerable
Select et RejectChaîner MapReduce / Injectcount, all?, any?, none?group_by et partitionsort_by, min_by, max_byRécapitulatif - Data Pipeline