📜  Dart编程-符文

📅  最后修改于: 2020-11-05 04:19:39             🧑  作者: Mango


字符串是字符序列。 Dart将字符串表示为Unicode UTF-16代码单元的序列。 Unicode是一种为每个字母,数字和符号定义唯一数值的格式。

由于落镖字符串的UTF-16编码单元的序列,一个字符串内的32位的Unicode值使用的是特殊的语法表示。符文是代表Unicode代码点的整数。

dart:core库中的String类提供了访问符文的机制。字符串代码单元/符文可以三种方式访问-

  • 使用String.codeUnitAt()函数
  • 使用String.codeUnits属性
  • 使用String.runes属性

String.codeUnitAt()函数

字符串的代码单元可以通过其索引进行访问。返回给定索引的16位UTF-16代码单元。

句法

String.codeUnitAt(int index);

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

它将产生以下输出

82

String.codeUnits属性

此属性返回指定字符串的UTF-16代码单元的不可更改列表。

句法

String. codeUnits;

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

它将产生以下输出

[82, 117, 110, 101, 115]

String.runes属性

此属性返回此字符串的Unicode代码点的可迭代。Runes扩展可迭代。

句法

String.runes

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

它将产生以下输出

A 
s 
t 
r 
i 
n 
g

Unicode代码点通常表示为\ uXXXX ,其中XXXX是4位十六进制值。要指定多于或少于4个十六进制数字,请将值放在大括号中。可以在dart:core库中使用Runes类的构造函数。

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

它将产生以下输出

符文