Dart Programming - Rune

Le stringhe sono una sequenza di caratteri. Dart rappresenta le stringhe come una sequenza di unità di codice Unicode UTF-16. Unicode è un formato che definisce un valore numerico univoco per ogni lettera, cifra e simbolo.

Poiché una stringa Dart è una sequenza di unità di codice UTF-16, i valori Unicode a 32 bit all'interno di una stringa vengono rappresentati utilizzando una sintassi speciale. UNrune è un numero intero che rappresenta un punto di codice Unicode.

La classe String in dart:core la libreria fornisce meccanismi per l'accesso runes. È possibile accedere alle unità / rune del codice stringa in tre modi:

  • Utilizzo della funzione String.codeUnitAt ()
  • Utilizzo della proprietà String.codeUnits
  • Utilizzo della proprietà String.runes

Funzione String.codeUnitAt ()

È possibile accedere alle unità di codice in una stringa tramite i relativi indici. Restituisce l'unità di codice UTF-16 a 16 bit all'indice specificato.

Sintassi

String.codeUnitAt(int index);

Esempio

import 'dart:core'; 
void main(){ 
   f1(); 
} 
f1() { 
   String x = 'Runes'; 
   print(x.codeUnitAt(0)); 
}

Produrrà quanto segue output -

82

Proprietà String.codeUnits

Questa proprietà restituisce un elenco non modificabile delle unità di codice UTF-16 della stringa specificata.

Sintassi

String. codeUnits;

Esempio

import 'dart:core';  
void main(){ 
   f1(); 
}  
f1() { 
   String x = 'Runes'; 
   print(x.codeUnits); 
}

Produrrà quanto segue output -

[82, 117, 110, 101, 115]

Proprietà String.runes

Questa proprietà restituisce un iterabile di punti di codice Unicode di this string.Runes estende iterabile.

Sintassi

String.runes

Esempio

void main(){ 
   "A string".runes.forEach((int rune) { 
      var character=new String.fromCharCode(rune); 
      print(character); 
   });  
}

Produrrà quanto segue output -

A 
s 
t 
r 
i 
n 
g

I punti di codice Unicode sono generalmente espressi come \uXXXX, dove XXXX è un valore esadecimale di 4 cifre. Per specificare più o meno di 4 cifre esadecimali, inserire il valore tra parentesi graffe. Si può usare il costruttore della classe Runes nella libreria dart: core per lo stesso.

Esempio

main() { 
   Runes input = new Runes(' \u{1f605} '); 
   print(new String.fromCharCodes(input)); 
}

Produrrà quanto segue output -