Dart程式設計 - Rune



字串是由字元組成的序列。Dart 將字串表示為 Unicode UTF-16 程式碼單元序列。Unicode 是一種格式,它為每個字母、數字和符號定義唯一的數值。

由於 Dart 字串是 UTF-16 程式碼單元序列,因此字串中的 32 位 Unicode 值使用特殊的語法表示。Rune 是表示 Unicode 程式碼點的整數。

dart:core 庫中的 String 類提供了訪問Rune 的機制。字串程式碼單元/Rune 可以透過三種方式訪問:

  • 使用 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)); 
}

它將產生以下輸出

82

String.codeUnits 屬性

此屬性返回指定字串的 UTF-16 程式碼單元的不可修改列表。

語法

String. codeUnits;

示例

import 'dart:core';  
void main(){ 
   f1(); 
}  
f1() { 
   String x = 'Runes'; 
   print(x.codeUnits); 
} 

它將產生以下輸出

[82, 117, 110, 101, 115]

String.runes 屬性

此屬性返回此字串的 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)); 
}  

它將產生以下輸出

Runes
廣告
© . All rights reserved.