Iterar sobre Strings
Parte de la sección Fundamentos del Journey de Ruby de Coddy — lección 67 de 88.
Al igual que los arreglos, las cadenas en Ruby se pueden iterar carácter por carácter. El método each_char te permite procesar cada carácter de una cadena individualmente.
Así es como funciona:
word = "Ruby"
word.each_char do |char|
puts char
endEsto muestra cada carácter en una línea separada: R, u, b, y. La variable de bloque char contiene un carácter a la vez a medida que el iterador se desplaza por la cadena.
Si necesitas tanto el carácter como su posición, utiliza each_char.with_index:
word = "Hi"
word.each_char.with_index do |char, index|
puts "#{index}: #{char}"
endEsto muestra:
0: H
1: iOtro método útil es chars, que convierte una cadena en un array de sus caracteres. Esto te permite usar todos los métodos de array que ya has aprendido:
letters = "abc".chars
puts letters # Salida: a, b, cEstos métodos son útiles cuando necesitas analizar texto, contar caracteres específicos o transformar cadenas carácter por carácter.
Desafío
FácilLee una sola línea de entrada que contenga una cadena (por ejemplo, hello).
Usa each_char.with_index para iterar a través de la cadena e imprimir cada carácter junto con su posición. Cada línea debe seguir este formato: Position 0: h
Después de imprimir todos los caracteres con sus posiciones, imprime el número total de caracteres en la cadena en una nueva línea con este formato: Total characters: 5
Por ejemplo, si la entrada es hello, la salida debería ser:
Position 0: h
Position 1: e
Position 2: l
Position 3: l
Position 4: o
Total characters: 5Si la entrada es Ruby, la salida debería ser:
Position 0: R
Position 1: u
Position 2: b
Position 3: y
Total characters: 4Si la entrada es code, la salida debería ser:
Position 0: c
Position 1: o
Position 2: d
Position 3: e
Total characters: 4Si la entrada es A, la salida debería ser:
Position 0: A
Total characters: 1Hoja de referencia
Usa each_char para iterar sobre cada carácter en una cadena:
word = "Ruby"
word.each_char do |char|
puts char
endUsa each_char.with_index para acceder tanto al carácter como a su posición:
word = "Hi"
word.each_char.with_index do |char, index|
puts "#{index}: #{char}"
endUsa chars para convertir una cadena en un array de caracteres:
letters = "abc".chars
puts letters # Salida: a, b, cPruébalo tú mismo
# Leer entrada
str = gets.chomp
# TODO: Escribe tu código a continuación
# Usa each_char.with_index para iterar a través de la cadena
# Imprime cada carácter con su posición en el formato: Position X: char
# Imprime el número total de caracteres en el formato: Total characters: XEsta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 3Operadores lógicos Parte 47Calculadora para dividir la cuenta
Mensaje de bienvenidaObtener la entrada del usuario10FizzBuzz con un giro
Descripción general del juegoEl método FizzBuzz2Variables y tipos de datos
Números y variablesTipo de dato StringTipo de dato BooleanTipo de dato SymbolComprobación de tipos de datosConvenciones de nomenclaturaResumen: Creación de variables5Toma de decisiones
Sentencia IfIf - ElseRepaso - Calculadora simpleIf - Else anidadosSentencia Unless8Bucles
Bucle For con rangosBucle WhileBreakNextRepaso - FactorialBucle TimesBucle UntilBucles anidadosRepaso - Entrada dinámica3Operadores Parte 1
Operadores aritméticosOperador móduloAtajos aritméticosResumen - Matemáticas simplesOperadores de comparación6Entrada y Salida Básica
Salida con putsSalida con print y pSalida con variablesEntrada con getsMétodo chompConversión de tiposResumen - Calculadora de edadResumen - Verdadero o falso