Character.isWhitespace în Java

Verifică dacă un caracter este spațiu alb: spațiu, tab, rând nou sau alt separator Unicode.

Sintaxă
static boolean isWhitespace(char c)

Ce face Character.isWhitespace

isWhitespace(c) returnează true pentru spațiu, '\t', '\n', '\r' și pentru separatorii Unicode obișnuiți. Este aceeași regulă folosită de String.strip() și isBlank().

Excepție importantă: spațiul neîntrerupt ('\u00A0', des întâlnit în textul copiat din pagini web sau din Word) nu este considerat spațiu alb de această metodă. Pentru el folosește Character.isSpaceChar(c).

Parametri

Parametru Descriere
c Caracterul verificat.

Ce returnează

true dacă este spațiu alb, altfel false.

Exemple

Exemplul 1: Ce este spațiu alb

public class Main {
    public static void main(String[] args) {
        char[] caractere = {' ', '\t', '\n', 'a', '_', '\u00A0'};
        String[] nume = {"spațiu", "tab", "rând nou", "a", "_", "spațiu neîntrerupt"};
        for (int i = 0; i < caractere.length; i++) {
            System.out.println(nume[i] + ": " + Character.isWhitespace(caractere[i]));
        }
    }
}

Rezultat

spațiu: true
tab: true
rând nou: true
a: false
_: false
spațiu neîntrerupt: false

Exemplul 2: Numărarea cuvintelor

Un cuvânt începe acolo unde un caracter care nu e spațiu urmează după un spațiu (sau la început).

public class Main {
    public static void main(String[] args) {
        String text = "  Ana  are\tmere\nși pere  ";
        int cuvinte = 0;
        boolean inCuvant = false;
        for (char c : text.toCharArray()) {
            if (Character.isWhitespace(c)) {
                inCuvant = false;
            } else if (!inCuvant) {
                inCuvant = true;
                cuvinte++;
            }
        }
        System.out.println("Cuvinte: " + cuvinte);
    }
}

Rezultat

Cuvinte: 5

Greșeli frecvente

  • Verifici doar c == ' ' și ratezi tab-urile și rândurile noi.
  • Te bazezi pe isWhitespace pentru text copiat de pe web: spațiul neîntrerupt \u00A0 rămâne. Înlocuiește-l întâi cu un spațiu obișnuit.

Comenzi înrudite

  • Character.isLetter: Verifică dacă un caracter este literă, cifră sau oricare dintre ele, după regulile Unicode.
  • String.strip: Elimină spațiile de la începutul și sfârșitul șirului; stripLeading/stripTrailing doar dintr-o parte.
  • String.length: length() dă numărul de caractere; isEmpty() verifică dacă șirul e gol, isBlank() dacă are doar spații.
  • Character: Clasa wrapper pentru tipul char, cu metode statice care verifică și transformă caractere (litere, cifre, spații).