Ce face str::to_ascii_uppercase
to_ascii_uppercase schimbă doar literele a–z. Orice alt caracter, inclusiv ă, ș, ț, rămâne exact cum era. Lungimea în octeți nu se schimbă niciodată. Perechea ei este to_ascii_lowercase.
Este potrivită pentru coduri și identificatori care sunt ASCII prin definiție: coduri de țară (ro → RO), coduri de monedă, anteturi HTTP, extensii de fișiere. Există și varianta pe loc, make_ascii_uppercase(), pe un String mutabil.
Ce returnează
Un String nou.
Exemple
Exemplul 1: ASCII versus Unicode
fn main() {
let s = "Iași, România";
println!("ascii: {}", s.to_ascii_uppercase());
println!("unicode: {}", s.to_uppercase());
}
Rezultat
ascii: IAșI, ROMâNIA
unicode: IAȘI, ROMÂNIA
Exemplul 2: Normalizarea unui cod de monedă
fn main() {
for cod in ["ron", "Eur", "usd"] {
let mut c = cod.to_string();
c.make_ascii_uppercase();
println!("{cod} -> {} / {c}", cod.to_ascii_uppercase());
}
}
Rezultat
ron -> RON / RON
Eur -> EUR / EUR
usd -> USD / USD
Greșeli frecvente
- O folosești pe nume de persoane sau orașe românești:
"Iași"devine"IAșI".
Comenzi înrudite
str::to_uppercase: Returnează un String nou cu toate literele mari (to_uppercase) sau mici (to_lowercase), după regulile Unicode.str::eq_ignore_ascii_case: Compară două texte ignorând diferența dintre literele ASCII mari și mici, fără să creeze texte noi.char::to_uppercase: Transformă un caracter în literă mare sau mică; returnează un iterator, pentru că rezultatul poate avea mai multe caractere.