Iterando sobre Strings P1
Parte da seção Fundamentos do Journey de Swift da Coddy — lição 71 de 86.
Assim como os arrays, as strings em Swift são sequências de caracteres pelas quais você pode iterar. Isso torna fácil processar texto um caractere por vez usando o familiar loop for-in.
Quando você percorre uma string, o Swift fornece cada caractere em ordem:
let word = "Hello"
for char in word {
print(char)
}
// H
// e
// l
// l
// oCada char no loop é do tipo Character, não String. Essa distinção é importante quando você precisa comparar ou manipular caracteres individuais.
Você pode usar esta técnica para analisar texto, como contar caracteres específicos:
let message = "banana"
var countA = 0
for char in message {
if char == "a" {
countA += 1
}
}
print(countA) // 3Observe que ao comparar um caractere, usamos um único caractere entre aspas como "a". O Swift trata isso automaticamente como um Character ao comparar com outro caractere.
Desafio
FácilEscreva uma função countVowels que recebe text e retorna a contagem total de vogais na string.
Itere por cada caractere na string e conte quantos são vogais (a, e, i, o, u). Conte tanto vogais minúsculas quanto maiúsculas.
Parâmetros:
text(String): A string a ser analisada
Retorno: O número total de vogais encontradas na string (Int)
Exemplo: Se text for "Hello World", a função deve retornar 3 (as vogais são e, o, o).
Folha de consulta
Você pode iterar sobre uma string usando um loop for-in para processar cada caractere:
let word = "Hello"
for char in word {
print(char)
}
// H
// e
// l
// l
// oCada char no loop é do tipo Character, não String.
Você pode comparar caracteres diretamente em condições:
let message = "banana"
var countA = 0
for char in message {
if char == "a" {
countA += 1
}
}
print(countA) // 3Experimente você mesmo
func countVowels(text: String) -> Int {
// Escreva o código aqui
}
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
4Operadores Parte 1
Operadores AritméticosOperador de MóduloAtribuição CompostaRecapitulação - Matemática SimplesOperadores de Comparação7IO Básico
Função PrintInterpolação de StringsEntrada ReadLineConversão de TiposRecapitulação - Até 120Recapitulação - Verdadeiro ou Falso10Funções
Declarar uma FunçãoParâmetros e ArgumentosValores de RetornoRótulos de ArgumentosRecapitulação - Função SigmaRecapitulação - Função de ValidaçãoValores Padrão13Iterando sobre Sequências
Iterando sobre ElementosO Método EnumeratedIterando sobre Strings P1Iterando sobre Strings P22Variáveis
Let vs VarAnotações de TipoNúmerosStringBooleanosConvenções de NomenclaturaRecapitulação - Inicializar Variáveis5Operadores Parte 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 3Operador Ternário8Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo Entrada11FizzBuzz com um Diferencial
Visão Geral do JogoA Função FizzBuzz3Opcionais
O que são OpcionaisDesembrulhando com If LetGuard LetOperador de Coalescência NulaRecapitulação - Desembrulho Seguro6Tomada de Decisão
Estrutura IfIf - ElseRecapitulação - Calculadora SimplesEstrutura SwitchSwitch com Intervalos9Loops
Loop For-InLoop WhileLoop Repeat-WhileBreakContinueRecapitulação - FatorialIntervalos em LoopsLoop AninhadoRecapitulação - Entrada Dinâmica12Fundamentos de Arrays
Declarando um ArrayAcessando ElementosModificando ArraysMétodos de ArrayRecapitulação - Lista de ProdutosRecapitulação - Array InvertidoTuplas15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do Programa