String.trim în Dart

Text (String, StringBuffer, RegExp) Dart 1.0 (trimLeft, trimRight: Dart 1.3)

Elimină spațiile albe (spații, tab-uri, rânduri noi) de la începutul și/sau sfârșitul textului.

Sintaxă
String trim()
String trimLeft()
String trimRight()

Ce face String.trim

trim() scoate spațiile albe de la ambele capete ale textului. Spații albe înseamnă spații, tab-uri (\t), rânduri noi (\n, \r) și alte spații Unicode. Spațiile din mijlocul textului rămân.

trimLeft() curăță doar începutul, iar trimRight() doar sfârșitul. trimRight() este util la rândurile citite dintr-un fișier, unde vrei să păstrezi indentarea de la început.

Folosește trim() pe orice text venit de la utilizator (formular, tastatură) înainte de a-l compara sau salva: un spațiu în plus face ca 'Ana ' să fie diferit de 'Ana'.

Ce returnează

Un String nou, fără spațiile de la capete.

Exemple

Exemplul 1: Cele trei variante

Parantezele drepte arată unde începe și unde se termină textul.

void main() {
  var text = '  \t Ana Popescu \n ';
  print('[${text.trim()}]');
  print('[${text.trimLeft()}]');
  print('[${text.trimRight()}]');
  print('[${'  Iași  are  spații  '.trim()}]');
}

Rezultat

[Ana Popescu]
[Ana Popescu 
 ]
[  	 Ana Popescu]
[Iași  are  spații]

Exemplul 2: Curățarea datelor de la tastatură

import 'dart:io';

void main() {
  var email = stdin.readLineSync() ?? '';
  print('Ai scris ${email.length} caractere');
  email = email.trim().toLowerCase();
  print('După curățare: "$email" (${email.length} caractere)');
  print(email == 'ana@exemplu.ro' ? 'Cont găsit' : 'Cont inexistent');
}

Ce scrie utilizatorul (intrare)

   ana@exemplu.ro

Rezultat

Ai scris 20 caractere
După curățare: "ana@exemplu.ro" (14 caractere)
Cont găsit

Greșeli frecvente

  • Te aștepți ca trim() să scoată spațiile duble din mijloc. Pentru asta folosește replaceAll(RegExp(r'\s+'), ' ').
  • Uiți să atribui rezultatul: nume.trim(); singur nu face nimic.

Comenzi înrudite

  • String.length: length dă numărul de unități UTF-16 ale textului; isEmpty și isNotEmpty spun dacă textul este gol.
  • String.replaceAll: Înlocuiește toate aparițiile (replaceAll) sau doar prima (replaceFirst) unui text; replaceAllMapped calculează înlocuirea.
  • String.split: Împarte textul în bucăți la fiecare apariție a separatorului și returnează o listă de texte.