Menu
Coddy logo textTech

Iterando sobre Strings

Parte da seção Fundamentos do Journey de Ruby da Coddy — lição 67 de 88.

Assim como os arrays, as strings em Ruby podem ser iteradas caractere por caractere. O método each_char permite que você processe cada caractere em uma string individualmente.

Veja como funciona:

word = "Ruby"

word.each_char do |char|
  puts char
end

Isso exibe cada caractere em uma linha separada: R, u, b, y. A variável de bloco char armazena um caractere por vez conforme o iterador percorre a string.

Se você precisar tanto do caractere quanto de sua posição, use each_char.with_index:

word = "Hi"

word.each_char.with_index do |char, index|
  puts "#{index}: #{char}"
end

Isso produz:

0: H
1: i

Outro método útil é chars, que converte uma string em um array de seus caracteres. Isso permite que você use todos os métodos de array que já aprendeu:

letters = "abc".chars
puts letters  # Saída: a, b, c

Estes métodos são úteis quando você precisa analisar texto, contar caracteres específicos ou transformar strings caractere por caractere.

challenge icon

Desafio

Fácil

Leia uma única linha de entrada contendo uma string (ex: hello).

Use each_char.with_index para iterar pela string e imprimir cada caractere junto com sua posição. Cada linha deve seguir este formato: Position 0: h

Após imprimir todos os caracteres com suas posições, imprima o número total de caracteres na string em uma nova linha neste formato: Total characters: 5

Por exemplo, se a entrada for hello, a saída deve ser:

Position 0: h
Position 1: e
Position 2: l
Position 3: l
Position 4: o
Total characters: 5

Se a entrada for Ruby, a saída deve ser:

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

Se a entrada for code, a saída deve ser:

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

Se a entrada for A, a saída deve ser:

Position 0: A
Total characters: 1

Folha de consulta

Use each_char para iterar sobre cada caractere em uma string:

word = "Ruby"

word.each_char do |char|
  puts char
end

Use each_char.with_index para acessar tanto o caractere quanto sua posição:

word = "Hi"

word.each_char.with_index do |char, index|
  puts "#{index}: #{char}"
end

Use chars para converter uma string em um array de caracteres:

letters = "abc".chars
puts letters  # Saída: a, b, c

Experimente você mesmo

# Ler a entrada
str = gets.chomp

# TODO: Escreva seu código abaixo
# Use each_char.with_index para iterar pela string
# Imprima cada caractere com sua posição no formato: Position X: char


# Imprima o número total de caracteres no formato: Total characters: X
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos