Iterando sobre Strings
Parte da seção Lógica e Fluxo do Journey de Ruby da Coddy — lição 3 de 56.
Uma string Ruby é uma sequência de caracteres, e você pode iterar sobre ela diretamente com each_char:
"ruby".each_char do |c|
puts c
end
# r
# u
# b
# ySe você também precisar do índice, use each_char.with_index:
"hi".each_char.with_index do |c, i|
puts "#{i}: #{c}"
end
# 0: h
# 1: iPara obter um array de caracteres de uma só vez, chame chars:
"ruby".chars # ["r", "u", "b", "y"]Desafio
FácilLeia uma única linha de entrada. Conte quantas vogais (a, e, i, o, u, insensível a maiúsculas e minúsculas) ela contém e imprima:
Vowels: <count>Para a entrada Hello Ruby, a saída é Vowels: 3: e, o, u. (y não é contado.)
Folha de consulta
Itere sobre cada caractere em uma string com each_char:
"ruby".each_char do |c|
puts c
endUse each_char.with_index para também obter o índice:
"hi".each_char.with_index do |c, i|
puts "#{i}: #{c}"
endConverta uma string em um array de caracteres com chars:
"ruby".chars # ["r", "u", "b", "y"]Experimente você mesmo
input = gets.chomp
count = 0
# TODO: iterar sobre cada caractere e contar as vogais
puts "Vowels: #{count}"
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica e Fluxo
1Strings a Fundo
Visão Geral de Métodos de StringInterpolação de StringsIterando sobre StringsSplit e JoinRecapitulação - String Weaver4Blocos, Procs e Lambdas
O que é um Bloco?do..end vs ChavesA palavra-chave yieldParâmetros de BlocoProcs e LambdasRecapitulação - Iterador Customizado7Hashes Parte 2
Hash.new com Valores PadrãoIterando em HashesHashes AninhadosMesclando e TransformandoRecapitulação - Contador de Frequência10Projeto - Registros de Alunos
Visão Geral do ProjetoAdicionar Aluno2Intervalos
O que é um Intervalo?Métodos de IntervaloIntervalos em Case / WhenRecapitulação - Prática com Intervalos5O Poder do Enumerable
Select e RejectEncadeando o MapReduce / Injectcount, all?, any?, none?group_by e partitionsort_by, min_by, max_byRecapitulação - Data Pipeline