Ce face str::eq_ignore_ascii_case
a.eq_ignore_ascii_case(b) este echivalent cu a.to_ascii_lowercase() == b.to_ascii_lowercase(), dar nu alocă memorie. Doar literele A–Z și a–z sunt considerate egale între ele; Ș și ș rămân diferite.
Este ideală pentru comparații tehnice: extensii ("JPG"/"jpg"), comenzi tastate de utilizator în engleză, nume de anteturi HTTP. Pentru text în română, compară rezultatele lui to_lowercase().
Parametri
| Parametru | Descriere |
|---|---|
other |
Textul cu care se compară. |
Ce returnează
bool.
Exemple
Exemplul 1: Extensii și comenzi
fn main() {
println!("{}", "JPG".eq_ignore_ascii_case("jpg"));
println!("{}", "Content-Type".eq_ignore_ascii_case("content-type"));
println!("{}", "ȘTEFAN".eq_ignore_ascii_case("ștefan"));
println!("{}", "ȘTEFAN".to_lowercase() == "ștefan".to_lowercase());
}
Rezultat
true
true
false
true
Exemplul 2: Răspuns da/nu de la tastatură
use std::io;
fn main() {
let mut raspuns = String::new();
io::stdin().read_line(&mut raspuns).unwrap();
let raspuns = raspuns.trim();
if raspuns.eq_ignore_ascii_case("da") || raspuns.eq_ignore_ascii_case("y") {
println!("Continuăm.");
} else {
println!("Anulat.");
}
}
Ce scrie utilizatorul (intrare)
DA
Rezultat
Continuăm.
Greșeli frecvente
- Te bazezi pe ea pentru cuvinte cu diacritice:
"ÎN".eq_ignore_ascii_case("în")estefalse.
Comenzi înrudite
str::to_ascii_uppercase: Returnează o copie în care doar literele ASCII a-z devin mari; diacriticele și alte caractere rămân neschimbate.str::to_uppercase: Returnează un String nou cu toate literele mari (to_uppercase) sau mici (to_lowercase), după regulile Unicode.PartialEq: Trait-ul din spatele operatorilor == și !=; derive compară toate câmpurile, implementarea manuală alege criteriul.