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 が生成されます-

ルーン文字