字串是一系列字元。Dart將字串表示為Unicode UTF-16程式碼單元序列。Unicode是一種格式,用於為每個字母,數位和符號定義唯一的數值。
由於Dart字串是UTF-16程式碼單元序列,因此字串中的32位元Unicode值使用特殊語法表示。符文是表示Unicode程式碼點的整數。
dart:core
庫中的String類提供了存取符文的機制。可以通過三種方式存取字串程式碼單元/符文 -
String.codeUnitAt()
函式String.codeUnits
屬性String.runes
屬性可以通過索引存取字串中的程式碼單元。返回給定索引處的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 = 'Tw511.com';
print(x.codeUnits);
}
執行上面範例程式碼,得到以下結果 -
[89, 105, 105, 98, 97, 105, 46, 99, 111, 109]
此屬性返回此字串的可疊代Unicode程式碼點,Runes可疊代擴充套件。
語法
String.runes
範例
void main(){
"Maxsu".runes.forEach((int rune) {
var character=new String.fromCharCode(rune);
print(character);
});
}
執行上面範例程式碼,得到以下結果 -
M
a
x
s
u
Unicode程式碼點通常表示為\uXXXX
,其中XXXX
是4
位十六進位制值。要指定多於或少於4個十六進位制數位,請將值放在大括號中。可以在dart:core
庫中使用Runes類別建構函式。
範例
main() {
Runes input = new Runes(' \u{1f605} ');
print(new String.fromCharCodes(input));
}