Menu
Coddy logo textTech

Divisão e Junção

Parte da seção Lógica e Fluxo do Journey de Swift da Coddy. Lição 4 de 56.

Duas ferramentas do dia a dia para trabalhar com texto delimitado. Ambas vêm de Foundation, que já foi importado.

components(separatedBy:) divide uma string em um array de Strings usando o delimitador que você passar:

let csv = "red,green,blue"
let parts = csv.components(separatedBy: ",")
print(parts)                       // ["red", "green", "blue"]

O inverso é joined(separator:) em qualquer [String]:

let words = ["swift", "is", "fun"]
let line = words.joined(separator: " ")
print(line)                        // "swift is fun"

Você frequentemente os combinará: dividir, transformar com map e juntar novamente. O resultado de map em um [String] ainda é um [String], então joined funciona diretamente.

challenge icon

Desafio

Fácil

Leia uma única linha de entrada: uma lista de palavras separadas por vírgulas.

Imprima três linhas:

  1. A quantidade de palavras após a divisão usando ,
  2. As palavras reunidas novamente com > (espaço, maior que, espaço), em letras maiúsculas
  3. A palavra mais longa da lista (após a divisão). Se duas palavras empatarem, use aquela que aparece primeiro.

Para a entrada red,green,blue, a saída é:

3
RED > GREEN > BLUE
green

Experimente você mesmo

let line = readLine()!
let words = line.components(separatedBy: ",")

// TODO: imprima a contagem, unidos em maiúsculas com " > ", a primeira palavra mais longa
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

Pratique por conta própria: Playground de Swift