Ce face String.length
length() returnează numărul de caractere char din șir. Pentru textul obișnuit, inclusiv cu diacritice românești, este exact numărul de litere: "Iași".length() este 4. Atenție: la array-uri lungimea este câmpul length (fără paranteze), la șiruri este metoda length().
isEmpty() returnează true doar dacă lungimea este 0. isBlank() (Java 11) returnează true și pentru un șir format numai din spații, tab-uri sau rânduri noi. Pentru a verifica un câmp completat de utilizator, isBlank() este de obicei alegerea corectă.
Un emoji sau alt caracter din afara planului de bază Unicode ocupă două valori char, deci contează de două ori în length(). Pentru numărul real de caractere folosește codePointCount.
Ce returnează
length(): un int ≥ 0. isEmpty(), isBlank(): boolean.
Exemple
Exemplul 1: Lungimea unor nume
public class Main {
public static void main(String[] args) {
String[] orase = {"Iași", "Cluj-Napoca", "Brașov", ""};
for (String oras : orase) {
System.out.println("\"" + oras + "\" are " + oras.length() + " caractere");
}
System.out.println("Array-ul are " + orase.length + " elemente");
}
}
Rezultat
"Iași" are 4 caractere
"Cluj-Napoca" are 11 caractere
"Brașov" are 6 caractere
"" are 0 caractere
Array-ul are 4 elemente
Exemplul 2: isEmpty și isBlank pentru câmpuri de formular
Un câmp cu trei spații nu este gol (isEmpty dă false), dar este „necompletat” (isBlank dă true).
public class Main {
public static void main(String[] args) {
String[] campuri = {"Ana", "", " ", "\t\n"};
for (String c : campuri) {
System.out.println("lungime " + c.length() + ": isEmpty=" + c.isEmpty() + ", isBlank=" + c.isBlank());
}
}
}
Rezultat
lungime 3: isEmpty=false, isBlank=false
lungime 0: isEmpty=true, isBlank=true
lungime 3: isEmpty=false, isBlank=true
lungime 2: isEmpty=false, isBlank=true
Exemplul 3: Validarea unui nume
public class Main {
static String verifica(String nume) {
if (nume == null || nume.isBlank()) {
return "Numele este obligatoriu";
}
if (nume.strip().length() < 3) {
return "Numele este prea scurt";
}
return "OK: " + nume.strip();
}
public static void main(String[] args) {
System.out.println(verifica(" Ion "));
System.out.println(verifica(" "));
System.out.println(verifica(null));
System.out.println(verifica("Elena"));
}
}
Rezultat
OK: Ion
Numele este obligatoriu
Numele este obligatoriu
OK: Elena
Greșeli frecvente
- Scrii
s.lengthfără paranteze (ca la array) sauarr.length()cu paranteze. Șirurile au metodalength(), array-urile câmpullength. - Apelezi
s.isEmpty()cândspoate finull: primeștiNullPointerException. Verifică întâis == null. - Folosești
isEmpty()pentru a valida un formular: un câmp cu spații trece de verificare. FoloseșteisBlank().
Comenzi înrudite
String: Clasa pentru text în Java: un șir de caractere care nu se mai poate modifica după ce a fost creat.String.strip: Elimină spațiile de la începutul și sfârșitul șirului; stripLeading/stripTrailing doar dintr-o parte.String.codePointAt: Lucrează cu puncte de cod Unicode întregi (inclusiv emoji), nu cu valori char: citire, numărare, deplasare.String.charAt: Returnează caracterul (char) de la poziția dată; prima poziție este 0, ultima este length() – 1.