字符串是一系列字符。Dart将字符串表示为Unicode UTF-16代码单元序列。Unicode是一种格式,用于为每个字母,数字和符号定义唯一的数值。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13752.html
由于Dart字符串是UTF-16代码单元序列,因此字符串中的32位Unicode值使用特殊语法表示。符文是表示Unicode代码点的整数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13752.html
dart:core
库中的String类提供了访问符文的机制。可以通过三种方式访问字符串代码单元/符文 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13752.html
- 使用
String.codeUnitAt()
函数 - 使用
String.codeUnits
属性 - 使用
String.runes
属性
String.codeUnitAt()函数
可以通过索引访问字符串中的代码单元。返回给定索引处的16位UTF-16代码单元。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13752.html
语法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13752.html
String.codeUnitAt(int index);
示例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13752.html
import 'dart:core';
void main(){
f1();
}
f1() {
String x = 'Runes';
print(x.codeUnitAt(0));
}
执行上面示例代码,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13752.html
82
String.codeUnits属性
此属性返回指定字符串的UTF-16代码单元的不可修改列表。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13752.html
语法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13752.html
String. codeUnits;
示例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13752.html
import 'dart:core';
void main(){
f1();
}
f1() {
String x = 'Yiibai.com';
print(x.codeUnits);
}
执行上面示例代码,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13752.html
[89, 105, 105, 98, 97, 105, 46, 99, 111, 109]
String.runes属性
此属性返回此字符串的可迭代Unicode代码点,Runes可迭代扩展。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13752.html
语法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13752.html
String.runes
示例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13752.html
void main(){
"Maxsu".runes.forEach((int rune) {
var character=new String.fromCharCode(rune);
print(character);
});
}
执行上面示例代码,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13752.html
M
a
x
s
u
Unicode代码点通常表示为\uXXXX
,其中XXXX
是4
位十六进制值。要指定多于或少于4个十六进制数字,请将值放在大括号中。可以在dart:core
库中使用Runes类的构造函数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13752.html
示例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13752.html
main() {
Runes input = new Runes(' \u{1f605} ');
print(new String.fromCharCodes(input));
}
原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/dart/dart_programming_runes.html#article-start文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13752.html