Ce face Character.isLetter
isLetter(c) returnează true pentru orice literă din orice alfabet: a, Ș, ă, litere grecești sau chirilice. isDigit(c) recunoaște cifrele 0–9 și cifrele din alte scrieri (de exemplu cele arabe). isLetterOrDigit(c) este adevărat dacă oricare dintre primele două este adevărată.
Spațiile, semnele de punctuație, _ și simbolurile ca @ nu sunt nici litere, nici cifre. Toate cele trei metode au și o variantă cu int codePoint, pentru caracterele care nu încap într-un char.
Parametri
| Parametru | Descriere |
|---|---|
c |
Caracterul verificat. |
Ce returnează
true sau false.
Exemple
Exemplul 1: Clasificarea caracterelor
public class Main {
public static void main(String[] args) {
String text = "Ș3 a_@ă";
for (char c : text.toCharArray()) {
System.out.println("'" + c + "' literă=" + Character.isLetter(c)
+ " cifră=" + Character.isDigit(c)
+ " literă/cifră=" + Character.isLetterOrDigit(c));
}
}
}
Rezultat
'Ș' literă=true cifră=false literă/cifră=true
'3' literă=false cifră=true literă/cifră=true
' ' literă=false cifră=false literă/cifră=false
'a' literă=true cifră=false literă/cifră=true
'_' literă=false cifră=false literă/cifră=false
'@' literă=false cifră=false literă/cifră=false
'ă' literă=true cifră=false literă/cifră=true
Exemplul 2: Numărarea literelor și cifrelor dintr-o adresă
public class Main {
public static void main(String[] args) {
String adresa = "Str. Ștefan cel Mare nr. 12, Iași";
int litere = 0;
int cifre = 0;
for (char c : adresa.toCharArray()) {
if (Character.isLetter(c)) {
litere++;
} else if (Character.isDigit(c)) {
cifre++;
}
}
System.out.println("Litere: " + litere + ", cifre: " + cifre);
}
}
Rezultat
Litere: 22, cifre: 2
Exemplul 3: Validarea unui nume de utilizator
Acceptăm doar litere și cifre, iar primul caracter trebuie să fie literă.
public class Main {
static boolean valid(String user) {
if (user.isEmpty() || !Character.isLetter(user.charAt(0))) {
return false;
}
for (char c : user.toCharArray()) {
if (!Character.isLetterOrDigit(c)) {
return false;
}
}
return true;
}
public static void main(String[] args) {
for (String u : new String[] {"ana2026", "2ana", "ion.pop", "Mădălina"}) {
System.out.println(u + ": " + valid(u));
}
}
}
Rezultat
ana2026: true
2ana: false
ion.pop: false
Mădălina: true
Greșeli frecvente
- Verifici literele cu
c >= 'a' && c <= 'z': diacriticele românești (ă, î, ș, ț) nu trec.Character.isLetterle acceptă. - Crezi că
isDigitacceptă numai 0–9: acceptă și cifre din alte scrieri, care trec apoi de verificare dar nu sunt înțelese de toate funcțiile. Pentru date stricte, verificăc >= '0' && c <= '9'.
Comenzi înrudite
Character: Clasa wrapper pentru tipul char, cu metode statice care verifică și transformă caractere (litere, cifre, spații).Character.isWhitespace: Verifică dacă un caracter este spațiu alb: spațiu, tab, rând nou sau alt separator Unicode.Character.isUpperCase: Verifică dacă un caracter este literă mare (isUpperCase) sau literă mică (isLowerCase).String.matches: Verifică dacă ÎNTREGUL șir se potrivește cu o expresie regulată (validare de formate).