Ce face str::starts_with
Ambele metode returnează true sau false. Comparația ține cont de litere mari și mici. Modelul poate fi un text, un char, o listă de caractere sau o funcție (char::is_uppercase).
Un text gol ca model se potrivește mereu. Dacă după verificare vrei și restul textului, strip_prefix/strip_suffix fac ambele lucruri deodată.
Parametri
| Parametru | Descriere |
|---|---|
pat |
Ce se caută la început sau la final. |
Ce returnează
bool.
Exemple
Exemplul 1: Filtrarea fișierelor după extensie
fn main() {
let fisiere = ["raport.pdf", "poza.JPG", "notite.txt", "factura.pdf"];
let pdf: Vec<&str> = fisiere.iter().copied().filter(|f| f.ends_with(".pdf")).collect();
println!("{pdf:?}");
println!("poza.JPG se termină cu .jpg: {}", "poza.JPG".ends_with(".jpg"));
println!("ignorând mari/mici: {}", "poza.JPG".to_lowercase().ends_with(".jpg"));
}
Rezultat
["raport.pdf", "factura.pdf"]
poza.JPG se termină cu .jpg: false
ignorând mari/mici: true
Exemplul 2: Caractere și condiții
fn main() {
let tel = "+40742123456";
println!("prefix internațional: {}", tel.starts_with('+'));
println!("începe cu majusculă: {}", "Ștefan".starts_with(char::is_uppercase));
println!("se termină cu cifră: {}", "Sala 12".ends_with(|c: char| c.is_ascii_digit()));
}
Rezultat
prefix internațional: true
începe cu majusculă: true
se termină cu cifră: true
Greșeli frecvente
- Uiți că verificarea face diferența între litere mari și mici. Transformă ambele părți cu
to_lowercase()sau foloseșteeq_ignore_ascii_casepe bucata potrivită.
Comenzi înrudite
str::strip_prefix: Scoate o singură dată un prefix (sau sufix) și returnează restul ca Some; dacă textul nu începe cu el, None.str::contains: Verifică dacă textul conține undeva un text, un caracter sau un caracter care respectă o condiție.str::find: Caută prima (find) sau ultima (rfind) apariție și returnează poziția ei în octeți, sau None.