Iterar sobre Strings
Parte de la sección Lógica y flujo del Journey de Ruby de Coddy — lección 3 de 56.
Una cadena de Ruby es una secuencia de caracteres, y puedes iterar sobre ella directamente con each_char:
"ruby".each_char do |c|
puts c
end
# r
# u
# b
# ySi también necesitas el índice, usa each_char.with_index:
"hi".each_char.with_index do |c, i|
puts "#{i}: #{c}"
end
# 0: h
# 1: iPara obtener un array de caracteres de una sola vez, llama a chars:
"ruby".chars # ["r", "u", "b", "y"]Desafío
FácilLee una sola línea de entrada. Cuenta cuántas vocales (a, e, i, o, u, sin distinguir entre mayúsculas y minúsculas) contiene, e imprime:
Vowels: <count>Para la entrada Hello Ruby, la salida es Vowels: 3: e, o, u. (y no se cuenta.)
Hoja de referencia
Itera sobre cada carácter en una cadena con each_char:
"ruby".each_char do |c|
puts c
endUsa each_char.with_index para obtener también el índice:
"hi".each_char.with_index do |c, i|
puts "#{i}: #{c}"
endConvierte una cadena en un array de caracteres con chars:
"ruby".chars # ["r", "u", "b", "y"]Pruébalo tú mismo
input = gets.chomp
count = 0
# TODO: iterar sobre cada carácter y contar las vocales
puts "Vowels: #{count}"
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y flujo
1Strings en profundidad
Visión general de los métodos de StringInterpolación de StringsIterar sobre StringsSplit y JoinRepaso - String Weaver4Bloques, Procs y Lambdas
¿Qué es un bloque?do..end vs llavesLa palabra clave yieldParámetros de bloqueProcs y LambdasResumen - Iterador personalizado7Hashes Parte 2
Hash.new con valores por defectoIteración de HashesHashes anidadosFusión y transformaciónResumen - Contador de frecuencia10Proyecto - Registros de Estudiantes
Descripción general del proyectoAgregar estudiante5Potencia de Enumerable
Select y RejectEncadenando MapReduce / Injectcount, all?, any?, none?group_by y partitionsort_by, min_by, max_byResumen - Data Pipeline