Ce face str::splitn
splitn(n, sep) se oprește după n - 1 tăieri. Ultima bucată primește restul textului neîmpărțit. Este utilă pentru linii de forma cheie=valoare în care valoarea poate conține și ea separatorul.
Când ai nevoie de exact două părți, split_once este mai comodă, pentru că returnează direct o pereche. Există și rsplitn, care numără tăierile de la final.
Parametri
| Parametru | Descriere |
|---|---|
n |
Numărul maxim de bucăți. Cu n = 1 obții tot textul ca o singură bucată; cu n = 0, nimic. |
pat |
Separatorul, ca la split. |
Ce returnează
Un iterator cu cel mult n bucăți &str.
Exemple
Exemplul 1: Cel mult trei bucăți
fn main() {
let linie = "2026-10-19 ERROR conexiune refuzată: port 5432";
let parti: Vec<&str> = linie.splitn(3, ' ').collect();
println!("data: {}", parti[0]);
println!("nivel: {}", parti[1]);
println!("mesaj: {}", parti[2]);
}
Rezultat
data: 2026-10-19
nivel: ERROR
mesaj: conexiune refuzată: port 5432
Exemplul 2: Cheie și valoare care conține ‘=’
fn main() {
let setare = "url=https://exemplu.ro/?a=1&b=2";
let mut parti = setare.splitn(2, '=');
let cheie = parti.next().unwrap();
let valoare = parti.next().unwrap_or("");
println!("{cheie} -> {valoare}");
}
Rezultat
url -> https://exemplu.ro/?a=1&b=2
Greșeli frecvente
- Crezi că
neste numărul de tăieri. Este numărul de bucăți:splitn(2, ...)taie o singură dată.
Comenzi înrudite
str::split: Împarte textul în bucăți la fiecare apariție a unui separator; rsplit dă bucățile de la coadă spre început.str::split_once: Taie textul în două la prima apariție a separatorului și returnează perechea, sau None dacă separatorul lipsește.