Menu
Coddy logo textTech

Iterando sobre Strings P2

Parte da seção Fundamentos do Journey de Swift da Coddy — lição 72 de 86.

Assim como usamos enumerated() com arrays para obter tanto o índice quanto o elemento, podemos fazer o mesmo com strings. Isso é útil quando você precisa saber a posição de cada caractere durante a iteração.

let word = "Swift"

for (index, char) in word.enumerated() {
    print("\(index): \(char)")
}
// 0: S
// 1: w
// 2: i
// 3: f
// 4: t

Esta técnica é útil ao construir novas strings com base em posições de caracteres. Por exemplo, você pode querer manter apenas os caracteres em índices pares:

let text = "abcdef"
var result = ""

for (index, char) in text.enumerated() {
    if index % 2 == 0 {
        result += String(char)
    }
}

print(result)  // ace

Observe que convertemos char em uma String usando String(char) antes de anexá-la. Isso é necessário porque result é uma String, e você não pode anexar diretamente um Character a ela usando o operador +=.

challenge icon

Desafio

Fácil

Escreva uma função extractOddIndexChars que recebe text e retorna uma nova string contendo apenas os caracteres nos índices ímpares.

Use enumerated() para iterar pela string e construir um resultado contendo caracteres onde o índice é ímpar (1, 3, 5, etc.).

Parâmetros:

  • text (String): A string de entrada para processar

Retorna: Uma string contendo apenas os caracteres nos índices ímpares (String)

Exemplo: Se text for "abcdefg", a função deve retornar "bdf" (caracteres nos índices 1, 3 e 5).

Folha de consulta

Use enumerated() com strings para obter tanto o índice quanto o caractere durante a iteração:

let word = "Swift"

for (index, char) in word.enumerated() {
    print("\(index): \(char)")
}
// 0: S
// 1: w
// 2: i
// 3: f
// 4: t

Ao construir strings com base nas posições dos caracteres, converta Character para String antes de anexar:

let text = "abcdef"
var result = ""

for (index, char) in text.enumerated() {
    if index % 2 == 0 {
        result += String(char)
    }
}

print(result)  // ace

Use String(char) para converter um Character em uma String ao anexar com +=.

Experimente você mesmo

func extractOddIndexChars(text: String) -> String {
    // Escreva o código aqui
}
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