StringBuffer.writeAll în Dart

writeAll adaugă toate elementele unei colecții, cu un separator opțional; writeCharCode adaugă un caracter după cod.

Sintaxă
void writeAll(Iterable<dynamic> objects, [String separator = ''])
void writeCharCode(int charCode)

Ce face StringBuffer.writeAll

writeAll(lista, separator) scrie fiecare element din colecție, cu separatorul între ele (nu și după ultimul). Fără separator, elementele sunt lipite unul de altul. Este echivalentul lui join, dar scrie direct în buffer.

writeCharCode(cod) adaugă caracterul cu codul Unicode dat: writeCharCode(65) adaugă A. Este util când lucrezi cu coduri de caractere (vezi codeUnitAt) și vrei să eviți crearea unui text pentru fiecare caracter.

Parametri

Parametru Descriere
objects Colecția de valori.
separator Textul pus între elemente (implicit gol).
charCode Codul Unicode al caracterului.

Ce returnează

Nimic (void).

Exemple

Exemplul 1: Liste cu separator

void main() {
  var sb = StringBuffer();
  sb.write('Orașe: ');
  sb.writeAll(['Iași', 'Cluj', 'Brașov'], ', ');
  sb.writeln();
  sb.write('Note: ');
  sb.writeAll([9, 7, 10], ' | ');
  sb.writeln();
  sb.writeAll(['a', 'b', 'c']);
  print(sb);
}

Rezultat

Orașe: Iași, Cluj, Brașov
Note: 9 | 7 | 10
abc

Exemplul 2: Inversarea literelor mari și mici cu writeCharCode

String inverseaza(String s) {
  var sb = StringBuffer();
  for (var c in s.codeUnits) {
    if (c >= 65 && c <= 90) {
      sb.writeCharCode(c + 32);
    } else if (c >= 97 && c <= 122) {
      sb.writeCharCode(c - 32);
    } else {
      sb.writeCharCode(c);
    }
  }
  return sb.toString();
}

void main() {
  print(inverseaza('Ana Are 3 Mere'));
  var alfabet = StringBuffer();
  for (var c = 65; c < 65 + 6; c++) {
    alfabet.writeCharCode(c);
  }
  print(alfabet);
}

Rezultat

aNA aRE 3 mERE
ABCDEF

Greșeli frecvente

  • Dai separatorul ca primul argument: writeAll(', ', lista). Ordinea este colecția, apoi separatorul.

Comenzi înrudite

  • StringBuffer.write: Adaugă o valoare la sfârșitul bufferului (write) sau o valoare urmată de rând nou (writeln).
  • StringBuffer: Construiește un text din multe bucăți, eficient; la final toString() dă textul, iar clear() îl golește.
  • Iterable.join: Lipește elementele într-un singur text, cu un separator între ele.
  • String.fromCharCode: Construiește un text dintr-un cod de caracter (fromCharCode) sau dintr-o listă de coduri (fromCharCodes).