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.