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: 1Prué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 falsoPractica por tu cuenta: Compilador de Ruby online