String.length în Java

length() dă numărul de caractere; isEmpty() verifică dacă șirul e gol, isBlank() dacă are doar spații.

Sintaxă
int length()
boolean isEmpty()   // Java 6
boolean isBlank()   // Java 11

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.length fără paranteze (ca la array) sau arr.length() cu paranteze. Șirurile au metoda length(), array-urile câmpul length.
  • Apelezi s.isEmpty() când s poate fi null: primești NullPointerException. Verifică întâi s == null.
  • Folosești isEmpty() pentru a valida un formular: un câmp cu spații trece de verificare. Folosește isBlank().

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.