Dart-programming-runes
提供:Dev Guides
Dartプログラミング-ルーン文字
文字列は文字のシーケンスです。 Dartは、文字列をUnicode UTF-16コードユニットのシーケンスとして表します。 Unicodeは、文字、数字、記号ごとに一意の数値を定義する形式です。
Dart文字列はUTF-16コードユニットのシーケンスであるため、文字列内の32ビットUnicode値は特別な構文を使用して表されます。 rune は、Unicodeコードポイントを表す整数です。
*dart:core* ライブラリのStringクラスは、 *runes* にアクセスするメカニズムを提供します。 文字列コード単位/ルーンは3つの方法でアクセスできます-
- 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));
}
次の output が生成されます-
82
String.codeUnitsプロパティ
このプロパティは、指定された文字列のUTF-16コード単位の変更不可能なリストを返します。
構文
String. codeUnits;
例
import 'dart:core';
void main(){
f1();
}
f1() {
String x = 'Runes';
print(x.codeUnits);
}
次の output が生成されます-
[82, 117, 110, 101, 115]
String.runesプロパティ
このプロパティは、この string.Runes のUnicodeコードポイントの反復可能オブジェクトを返します。
構文
String.runes
例
void main(){
"A string".runes.forEach((int rune) {
var character=new String.fromCharCode(rune);
print(character);
});
}
次の output が生成されます-
A
s
t
r
i
n
g
通常、Unicodeコードポイントは \ uXXXX として表されます。XXXXは4桁の16進値です。 4桁以上または16進数未満を指定するには、値を中括弧で囲みます。 同じためにdart:coreライブラリのRunesクラスのコンストラクタを使用できます。
例
main() {
Runes input = new Runes(' \u{1f605} ');
print(new String.fromCharCodes(input));
}
次の output が生成されます-