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
endIsso 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}"
endIsso produz:
0: H
1: iOutro 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, cEstes métodos são úteis quando você precisa analisar texto, contar caracteres específicos ou transformar strings caractere por caractere.
Desafio
FácilLeia 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: 5Se a entrada for Ruby, a saída deve ser:
Position 0: R
Position 1: u
Position 2: b
Position 3: y
Total characters: 4Se a entrada for code, a saída deve ser:
Position 0: c
Position 1: o
Position 2: d
Position 3: e
Total characters: 4Se a entrada for A, a saída deve ser:
Position 0: A
Total characters: 1Folha de consulta
Use each_char para iterar sobre cada caractere em uma string:
word = "Ruby"
word.each_char do |char|
puts char
endUse 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}"
endUse chars para converter uma string em um array de caracteres:
letters = "abc".chars
puts letters # Saída: a, b, cExperimente 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: XEsta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores Parte 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 3Operadores Lógicos Parte 47Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo Entrada do Usuário10FizzBuzz com um Toque Especial
Visão Geral do JogoO Método FizzBuzz2Variáveis e Tipos de Dados
Números e VariáveisTipo de Dado StringTipo de Dado BooleanTipo de Dado SymbolVerificando Tipos de DadosConvenções de NomenclaturaRecapitulação - Criação de Variáveis5Tomada de Decisão
Instrução IfIf - ElseRecapitulação - Calculadora SimplesIf - Else AninhadoInstrução Unless8Laços de Repetição
Loop For com IntervalosLoop WhileBreakNextRecapitulação - FatorialLoop TimesLoop UntilLoops AninhadosRecapitulação - Entrada Dinâmica3Operadores Parte 1
Operadores AritméticosOperador de MóduloAtalhos AritméticosRecapitulação - Matemática SimplesOperadores de Comparação6IO Básico
Saída com putsSaída com print e pSaída com VariáveisEntrada com getsMétodo chompConversão de TiposRecapitulação - Calculadora de IdadeRecapitulação - Verdadeiro ou Falso9Métodos
Definindo um MétodoParâmetros de MétodoValores de RetornoRecapitulação - Método SigmaRecapitulação - Método de ValidaçãoValores de Parâmetro Padrão15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do Programa