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' + 1ca să obții'B'. Nu compilează: lucrezi cu codul ('A'.codeUnitAt(0) + 1) și îl transformi înapoi cuString.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.