String.split în Dart

Împarte textul în bucăți la fiecare apariție a separatorului și returnează o listă de texte.

Sintaxă
List<String> split(Pattern pattern)

Ce face String.split

split(separator) taie textul acolo unde apare separatorul și returnează lista bucăților: 'Ana,Mihai,Ioana'.split(',') dă [Ana, Mihai, Ioana]. Separatorul nu apare în rezultat.

Separatorul poate fi un text sau o RegExp, de exemplu RegExp(r'\s+') pentru „unul sau mai multe spații”. Cu separatorul gol '' primești fiecare unitate de cod separat (literă cu literă).

Dacă doi separatori sunt alăturați sau textul începe/se termină cu separator, apar texte goale în listă: 'a,,b'.split(',') este [a, , b]. Un text gol dă [''], adică o listă cu un element, nu o listă goală.

Parametri

Parametru Descriere
pattern Separatorul: un String sau o RegExp.

Ce returnează

Un List<String> cu bucățile.

Exemple

Exemplul 1: Separatori diferiți

Pentru textul gol afișăm lungimea listei: [''] s-ar afișa tot ca [], deși conține un element.

void main() {
  print('Ana,Mihai,Ioana'.split(','));
  print('2026-10-19'.split('-'));
  print('Iași'.split(''));
  print('a,,b,'.split(','));
  print(''.split(',').length);
  print('Ana   are    mere'.split(RegExp(r'\s+')));
}

Rezultat

[Ana, Mihai, Ioana]
[2026, 10, 19]
[I, a, ș, i]
[a, , b, ]
1
[Ana, are, mere]

Exemplul 2: Citirea unui rând CSV

Fiecare rând are nume, oraș și notă. Transformăm nota în număr cu int.parse și calculăm media.

void main() {
  var date = 'Ana;Iași;9\nMihai;Cluj;7\nIoana;Brașov;10';
  var total = 0;
  var randuri = date.split('\n');
  for (var rand in randuri) {
    var campuri = rand.split(';');
    var nota = int.parse(campuri[2]);
    total += nota;
    print('${campuri[0]} din ${campuri[1]} are nota $nota');
  }
  print('Media: ${total / randuri.length}');
}

Rezultat

Ana din Iași are nota 9
Mihai din Cluj are nota 7
Ioana din Brașov are nota 10
Media: 8.666666666666666

Greșeli frecvente

  • Te aștepți ca ''.split(',') să dea o listă goală. Dă ['']; verifică isEmpty înainte.
  • Împarți după un singur spațiu un text cu spații multiple și primești texte goale. Folosește trim().split(RegExp(r'\s+')).

Comenzi înrudite

  • String.splitMapJoin: Împarte textul în potriviri și bucăți dintre ele, le transformă separat și le lipește la loc.
  • String.trim: Elimină spațiile albe (spații, tab-uri, rânduri noi) de la începutul și/sau sfârșitul textului.
  • RegExp: O expresie regulată: un model de text cu care cauți, verifici sau înlocuiești bucăți dintr-un text.
  • Iterable.join: Lipește elementele într-un singur text, cu un separator între ele.