Programação de dardo - Runas

Strings são uma sequência de caracteres. Dart representa strings como uma sequência de unidades de código Unicode UTF-16. Unicode é um formato que define um valor numérico exclusivo para cada letra, dígito e símbolo.

Como uma string Dart é uma sequência de unidades de código UTF-16, os valores Unicode de 32 bits em uma string são representados por meio de uma sintaxe especial. UMArune é um número inteiro que representa um ponto de código Unicode.

A classe String no dart:core biblioteca fornece mecanismos para acessar runes. As unidades / runas do código da string podem ser acessadas de três maneiras -

  • Usando a função String.codeUnitAt ()
  • Usando a propriedade String.codeUnits
  • Usando a propriedade String.runes

Função String.codeUnitAt ()

As unidades de código em uma string podem ser acessadas por meio de seus índices. Retorna a unidade de código UTF-16 de 16 bits no índice fornecido.

Sintaxe

String.codeUnitAt(int index);

Exemplo

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

Irá produzir o seguinte output -

82

Propriedade String.codeUnits

Esta propriedade retorna uma lista não modificável das unidades de código UTF-16 da string especificada.

Sintaxe

String. codeUnits;

Exemplo

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

Irá produzir o seguinte output -

[82, 117, 110, 101, 115]

Propriedade String.runes

Esta propriedade retorna um iterável de pontos de código Unicode deste string.Runes estende iterável.

Sintaxe

String.runes

Exemplo

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

Irá produzir o seguinte output -

A 
s 
t 
r 
i 
n 
g

Os pontos de código Unicode são geralmente expressos como \uXXXX, onde XXXX é um valor hexadecimal de 4 dígitos. Para especificar mais ou menos de 4 dígitos hexadecimais, coloque o valor entre colchetes. Pode-se usar o construtor da classe Runes na biblioteca dart: core para o mesmo.

Exemplo

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

Irá produzir o seguinte output -