String.length în Dart

length dă numărul de unități UTF-16 ale textului; isEmpty și isNotEmpty spun dacă textul este gol.

Sintaxă
int get length
bool get isEmpty
bool get isNotEmpty

Ce face String.length

length returnează lungimea textului: 'Iași'.length este 4. Textul gol '' are lungimea 0. Pentru a verifica dacă un text este gol, folosește isEmpty (sau opusul, isNotEmpty): se citește mai ușor decât length == 0.

Atenție: length numără unități de cod UTF-16, nu litere văzute pe ecran. Literele românești (ă, ș, ț) ocupă o unitate, dar emoji-urile și alte caractere rare ocupă două: '😀'.length este 2. Pentru numărul real de caractere Unicode folosește text.runes.length (vezi runes).

Un text cu doar spații nu este gol: ' '.isEmpty este false. Pentru câmpuri de formular verifică text.trim().isEmpty.

Ce returnează

length: un int. isEmpty, isNotEmpty: un bool.

Exemple

Exemplul 1: Lungimea și textul gol

void main() {
  print('Iași'.length);
  print('Timișoara'.length);
  print(''.length);
  print(''.isEmpty);
  print('Ana'.isNotEmpty);
  print('   '.isEmpty);
  print('   '.trim().isEmpty);
  print('😀'.length);
  print('😀'.runes.length);
}

Rezultat

4
9
0
true
true
false
true
2
1

Exemplul 2: Validarea unui nume de utilizator

Verificăm întâi dacă textul este gol după trim(), apoi lungimea minimă și maximă.

String verifica(String nume) {
  var curat = nume.trim();
  if (curat.isEmpty) return 'Numele este obligatoriu';
  if (curat.length < 3) return 'Numele „$curat” este prea scurt';
  if (curat.length > 12) return 'Numele are ${curat.length} caractere (maxim 12)';
  return 'Nume valid: $curat';
}

void main() {
  for (var n in ['', '   ', 'Al', 'ana.popescu', 'mihai_ionescu_iasi']) {
    print(verifica(n));
  }
}

Rezultat

Numele este obligatoriu
Numele este obligatoriu
Numele „Al” este prea scurt
Nume valid: ana.popescu
Numele are 18 caractere (maxim 12)

Greșeli frecvente

  • Scrii text.length() cu paranteze. length este o proprietate (getter), nu o metodă.
  • Folosești length pentru a număra caracterele dintr-un text cu emoji: rezultatul poate fi mai mare. Folosește runes.length.

Comenzi înrudite

  • String: Tipul pentru text în Dart: un șir de caractere care nu se mai poate modifica după creare.
  • String.trim: Elimină spațiile albe (spații, tab-uri, rânduri noi) de la începutul și/sau sfârșitul textului.
  • String.codeUnitAt: Dau codurile numerice ale caracterelor: unități UTF-16 (codeUnitAt, codeUnits) sau puncte Unicode (runes).