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: 1Experimente 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 ProgramaPratique por conta própria: Compilador de Ruby online