Ce face char::is_alphabetic
is_alphabetic() returnează true pentru litere din orice alfabet: a, ș, Î, ж, λ. is_alphanumeric() acceptă în plus orice caracter numeric (is_numeric): cifre, dar și ½ sau ².
Dacă vrei strict literele englezești a–z/A–Z (de exemplu pentru un nume de utilizator ASCII), folosește is_ascii_alphabetic() și is_ascii_alphanumeric().
Ce returnează
bool.
Exemple
Exemplul 1: Unicode față de ASCII
fn main() {
for c in ['a', 'ș', 'Î', 'λ', '7', '½', '_', ' '] {
println!(
"{c:?}: alfabetic = {:5}, alfanumeric = {:5}, ascii alfabetic = {}",
c.is_alphabetic(),
c.is_alphanumeric(),
c.is_ascii_alphabetic()
);
}
}
Rezultat
'a': alfabetic = true , alfanumeric = true , ascii alfabetic = true
'ș': alfabetic = true , alfanumeric = true , ascii alfabetic = false
'Î': alfabetic = true , alfanumeric = true , ascii alfabetic = false
'λ': alfabetic = true , alfanumeric = true , ascii alfabetic = false
'7': alfabetic = false, alfanumeric = true , ascii alfabetic = false
'½': alfabetic = false, alfanumeric = true , ascii alfabetic = false
'_': alfabetic = false, alfanumeric = false, ascii alfabetic = false
' ': alfabetic = false, alfanumeric = false, ascii alfabetic = false
Exemplul 2: Separarea cuvintelor de punctuație
fn main() {
let text = "Ce-ai zis? Mâine, la 10, mergem!";
let cuvinte: Vec<&str> = text
.split(|c: char| !c.is_alphanumeric())
.filter(|s| !s.is_empty())
.collect();
println!("{cuvinte:?}");
}
Rezultat
["Ce", "ai", "zis", "Mâine", "la", "10", "mergem"]
Greșeli frecvente
- Validezi numele de persoane cu
is_ascii_alphabeticși respingi „Ștefan”. Pentru nume reale foloseșteis_alphabetic.
Comenzi înrudite
char::is_numeric: is_numeric: orice caracter numeric Unicode (inclusiv ½, ², Ⅻ); is_ascii_digit: doar cifrele 0–9.char::is_whitespace: Verifică dacă un caracter este spațiu alb: spațiu, tab, linie nouă sau alt spațiu Unicode.char::is_uppercase: Verifică dacă un caracter este literă mare (is_uppercase) sau literă mică (is_lowercase).String::retain: Păstrează doar caracterele pentru care funcția dată returnează true; restul sunt șterse pe loc.