Menu
Coddy logo textTech

Substituindo Substrings

Parte da seção Lógica e Fluxo do Journey de Swift da Coddy — lição 5 de 56.

replacingOccurrences(of:with:) retorna uma nova string com cada correspondência de uma substring substituída por outra:

let phone = "555-123-4567"
let digits = phone.replacingOccurrences(of: "-", with: "")
print(digits)              // "5551234567"

Assim como os métodos de capitalização, ele retorna uma nova String; a original permanece inalterada. Encadeie chamadas quando precisar remover vários padrões:

let messy = "  555-123 4567  "
let clean = messy
    .replacingOccurrences(of: "-", with: "")
    .replacingOccurrences(of: " ", with: "")
print(clean)               // "5551234567"

Duas substituições significam duas passagens pela string. Para código sensível ao desempenho em strings gigantes, prefira uma única passagem de filter pelos caracteres; para o trabalho diário, substituições encadeadas são adequadas e de leitura clara.

challenge icon

Desafio

Iniciante

Leia uma única linha de entrada. Trate-a como uma frase e produza um slug adequado para uma URL ao:

  1. Converter a entrada para letras minúsculas
  2. Substituir cada espaço por um -
  3. Remover todos os caracteres !, ? e .

Imprima o slug resultante.

Para a entrada Hello World!, a saída é hello-world. Para Is Swift Fun?, a saída é is-swift-fun.

Folha de consulta

replacingOccurrences(of:with:) retorna uma nova string com todas as correspondências substituídas:

let digits = "555-123-4567".replacingOccurrences(of: "-", with: "")
// "5551234567"

Encadeie chamadas para lidar com múltiplos padrões:

let clean = "555-123 4567"
    .replacingOccurrences(of: "-", with: "")
    .replacingOccurrences(of: " ", with: "")

Experimente você mesmo

let line = readLine()!

// TODO: converter para minúsculas, substituir espaços por hifens, remover os caracteres ! ? .
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 Lógica e Fluxo