Dart 编码
字符串是一系列字符。Dart将字符串表示为Unicode UTF-16代码单元序列。Unicode是一种格式,用于为每个字母,数字和符号定义唯一的数值。
由于Dart字符串是一系列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 string.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)); }
它将产生以下输出:
枚举用于定义命名常量值。使用 enum 关键字声明枚举类型。 语法enum enum_name { enumeration list}enum_name 指定枚举类型名称enumeration list 是一个 ...