Split e Replace
Nesta página
.split(sep) divide a string pelo separador e devolve um array de strings.
O separador pode ter mais de um caractere. Um delimitador duplicado gera uma
string vazia entre eles — o comprimento do array reflete isso.
.replace(old, new) substitui todas as ocorrências de old por new e
devolve uma nova string; a original permanece intacta. Passar "" como new
é a forma idiomática de remover caracteres.
Divisão por separador simples e multi-caractere; substituição e remoção de trechos.
07-split-and-replace.zolo
// Feature: Splitting and replacing
// Syntax: `s.split(sep)` -> [str], `s.replace(old, new)` -> str
// When to use: simple CSV parsing, sanitization, transformations.
use std::csv
use std::log
// -- split: divides the string by a separator -------------------
let csv = "alice,bob,carol"
let names = csv.split(",")
print(names.len()) // 3
print(names[0]) // alice
print(names[1]) // bob
print(names[2]) // carol
// Iterate parts.
for n in csv.split(",") {
print("- {n}")
}
// expected:
// - alice
// - bob
// - carol
// Separator longer than 1 character.
let log = "INFO::ready::server::up"
let pieces = log.split("::")
print(pieces.len()) // 4
print(pieces[0]) // INFO
// Empty string between delimiters becomes an empty piece.
let chunk = "a,,c"
print(chunk.split(",").len()) // 3
// -- replace: substitutes all occurrences ----------------------
let s = "hello world"
print(s.replace("o", "0")) // hell0 w0rld
print(s.replace("world", "Zolo")) // hello Zolo
// Original is unchanged.
print(s) // hello world
// Chain: normalize spacing.
let raw = "a b c"
let clean = raw.replace(" ", " ")
print(clean)
// expected: a b c
// Replace a character with nothing — equivalent to removing.
print("a-b-c".replace("-", ""))
// expected: abc
Desafio
Dada a string "2026-05-30", use .split("-") para extrair o ano, mês e dia
em variáveis separadas e imprima "Dia: 30, Mês: 05, Ano: 2026".