Dart 编程 - Runes
字符串是字符序列。Dart 将字符串表示为 Unicode UTF-16 代码单元序列。Unicode 是一种为每个字母、数字和符号定义唯一数值的格式。
由于 Dart 字符串是 UTF-16 代码单元序列,因此字符串中的 32 位 Unicode 值使用特殊语法表示。rune 是一个表示 Unicode 代码点的整数。
dart:core 库中的 String 类提供了访问 runes 的机制。字符串代码单元/符文可以通过三种方式访问 −
- 使用 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;
Example
import 'dart:core'; void main(){ f1(); } f1() { String x = 'Runes'; print(x.codeUnits); }
它将产生以下输出 −
[82, 117, 110, 101, 115]
String.runes 属性
此属性返回此 string.Runes 扩展可迭代对象的 Unicode 代码点的可迭代对象。
语法
String.runes
Example
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)); }
它将产生以下输出 −