Menu
Coddy logo textTech

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
end

Esto 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}"
end

Esto muestra:

0: H
1: i

Otro 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, c

Estos métodos son útiles cuando necesitas analizar texto, contar caracteres específicos o transformar cadenas carácter por carácter.

challenge icon

Desafío

Fácil

Lee 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: 5

Si la entrada es Ruby, la salida debería ser:

Position 0: R
Position 1: u
Position 2: b
Position 3: y
Total characters: 4

Si la entrada es code, la salida debería ser:

Position 0: c
Position 1: o
Position 2: d
Position 3: e
Total characters: 4

Si la entrada es A, la salida debería ser:

Position 0: A
Total characters: 1

Hoja de referencia

Usa each_char para iterar sobre cada carácter en una cadena:

word = "Ruby"

word.each_char do |char|
  puts char
end

Usa 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}"
end

Usa chars para convertir una cadena en un array de caracteres:

letters = "abc".chars
puts letters  # Salida: a, b, c

Prué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: X
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos