📅  最后修改于: 2020-11-05 04:19:39             🧑  作者: Mango
字符串是字符序列。 Dart将字符串表示为Unicode UTF-16代码单元的序列。 Unicode是一种为每个字母,数字和符号定义唯一数值的格式。
由于落镖字符串的UTF-16编码单元的序列,一个字符串内的32位的Unicode值使用的是特殊的语法表示。符文是代表Unicode代码点的整数。
dart:core库中的String类提供了访问符文的机制。字符串代码单元/符文可以三种方式访问-
字符串的代码单元可以通过其索引进行访问。返回给定索引的16位UTF-16代码单元。
String.codeUnitAt(int index);
import 'dart:core';
void main(){
f1();
}
f1() {
String x = 'Runes';
print(x.codeUnitAt(0));
}
它将产生以下输出–
82
此属性返回指定字符串的UTF-16代码单元的不可更改列表。
String. codeUnits;
import 'dart:core';
void main(){
f1();
}
f1() {
String x = 'Runes';
print(x.codeUnits);
}
它将产生以下输出–
[82, 117, 110, 101, 115]
此属性返回此字符串的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));
}
它将产生以下输出–