str::to_ascii_uppercase în Rust

Returnează o copie în care doar literele ASCII a-z devin mari; diacriticele și alte caractere rămân neschimbate.

Sintaxă
pub fn to_ascii_uppercase(&self) -> String

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.