String.fromCharCode în Dart

Construiește un text dintr-un cod de caracter (fromCharCode) sau dintr-o listă de coduri (fromCharCodes).

Sintaxă
String.fromCharCode(int charCode)
String.fromCharCodes(Iterable<int> charCodes, [int start = 0, int? end])

Ce face String.fromCharCode

Sunt constructori ai clasei String și fac operația inversă lui codeUnitAt / codeUnits. String.fromCharCode(65) este 'A', iar String.fromCharCodes([65, 110, 97]) este 'Ana'.

Codurile sunt puncte Unicode: poți da și coduri mai mari decât 65535 (emoji), iar Dart creează singur cele două unități UTF-16. La fromCharCodes poți alege doar o parte din listă cu start și end.

Sunt utile când generezi litere (A, B, C… pentru coloane sau variante de răspuns) sau când transformi coduri citite din alt format înapoi în text.

Parametri

Parametru Descriere
charCode Codul Unicode al caracterului.
charCodes Lista de coduri.
start, end Bucata din listă folosită (opțional).

Ce returnează

Un String nou.

Exemple

Exemplul 1: De la coduri la text

void main() {
  print(String.fromCharCode(65));
  print(String.fromCharCode(537));
  print(String.fromCharCode(0x1F600));
  print(String.fromCharCodes([73, 97, 537, 105]));
  print(String.fromCharCodes([65, 110, 97, 32, 77, 105, 104, 97, 105], 4));
  var coduri = 'Brașov'.codeUnits;
  print(String.fromCharCodes(coduri));
}

Rezultat

A
ș
😀
Iași
Mihai
Brașov

Exemplul 2: Variante de răspuns A, B, C, D

void main() {
  var raspunsuri = ['Iași', 'Cluj', 'București', 'Timișoara'];
  print('Care este capitala României?');
  for (var i = 0; i < raspunsuri.length; i++) {
    var litera = String.fromCharCode('A'.codeUnitAt(0) + i);
    print('$litera) ${raspunsuri[i]}');
  }
}

Rezultat

Care este capitala României?
A) Iași
B) Cluj
C) București
D) Timișoara

Greșeli frecvente

  • Scrii 'A' + 1 ca să obții 'B'. Nu compilează: lucrezi cu codul ('A'.codeUnitAt(0) + 1) și îl transformi înapoi cu String.fromCharCode.

Comenzi înrudite

  • String.codeUnitAt: Dau codurile numerice ale caracterelor: unități UTF-16 (codeUnitAt, codeUnits) sau puncte Unicode (runes).
  • StringBuffer.writeAll: writeAll adaugă toate elementele unei colecții, cu un separator opțional; writeCharCode adaugă un caracter după cod.