char::is_whitespace în Rust

Verifică dacă un caracter este spațiu alb: spațiu, tab, linie nouă sau alt spațiu Unicode.

Sintaxă
pub fn is_whitespace(self) -> bool

Ce face char::is_whitespace

is_whitespace() returnează true pentru spațiu, \t, \n, \r, spațiul fără întrerupere (U+00A0) și celelalte caractere marcate în Unicode ca spațiu alb. Aceeași definiție o folosesc trim și split_whitespace.

Varianta is_ascii_whitespace() recunoaște doar spațiile ASCII și nu include spațiul fără întrerupere, care apare des în texte copiate din pagini web sau din Word.

Ce returnează

bool.

Exemple

Exemplul 1: Ce este spațiu alb

fn main() {
    for c in [' ', '\t', '\n', '\u{A0}', '_', 'a'] {
        println!(
            "{:<10} is_whitespace = {:5}, is_ascii_whitespace = {}",
            format!("{c:?}"),
            c.is_whitespace(),
            c.is_ascii_whitespace()
        );
    }
}

Rezultat

' '        is_whitespace = true , is_ascii_whitespace = true
'\t'       is_whitespace = true , is_ascii_whitespace = true
'\n'       is_whitespace = true , is_ascii_whitespace = true
'\u{a0}'   is_whitespace = true , is_ascii_whitespace = false
'_'        is_whitespace = false, is_ascii_whitespace = false
'a'        is_whitespace = false, is_ascii_whitespace = false

Exemplul 2: Eliminarea tuturor spațiilor

fn main() {
    let iban = "RO49 AAAA 1B31\u{A0}0075 9384 0000";
    let compact: String = iban.chars().filter(|c| !c.is_whitespace()).collect();
    println!("{compact} ({} caractere)", compact.chars().count());
}

Rezultat

RO49AAAA1B31007593840000 (24 caractere)

Greșeli frecvente

  • Compari doar cu ' ' și ratezi tab-urile și spațiile fără întrerupere.

Comenzi înrudite

  • str::trim: Elimină spațiile albe de la ambele capete (trim), doar de la început (trim_start) sau doar de la final (trim_end).
  • str::split_whitespace: Împarte textul în cuvinte, la orice spațiu alb (spații, tab, linie nouă), fără bucăți goale.
  • char::is_alphabetic: Verifică dacă un caracter este literă (is_alphabetic) sau literă ori cifră (is_alphanumeric), după Unicode.