Dart-Programmierung - Runen
Zeichenfolgen sind eine Folge von Zeichen. Dart repräsentiert Zeichenfolgen als eine Folge von Unicode UTF-16-Codeeinheiten. Unicode ist ein Format, das einen eindeutigen numerischen Wert für jeden Buchstaben, jede Ziffer und jedes Symbol definiert.
Da eine Dart-Zeichenfolge eine Folge von UTF-16-Codeeinheiten ist, werden 32-Bit-Unicode-Werte innerhalb einer Zeichenfolge mithilfe einer speziellen Syntax dargestellt. EINrune ist eine Ganzzahl, die einen Unicode-Codepunkt darstellt.
Die String-Klasse in der dart:core Bibliothek bietet Mechanismen für den Zugriff runes. Auf String-Code-Einheiten / Runen kann auf drei Arten zugegriffen werden:
- Verwenden der Funktion String.codeUnitAt ()
- Verwenden der String.codeUnits-Eigenschaft
- Verwenden der String.runes-Eigenschaft
String.codeUnitAt () Funktion
Auf Codeeinheiten in einer Zeichenfolge kann über ihre Indizes zugegriffen werden. Gibt die 16-Bit-UTF-16-Codeeinheit am angegebenen Index zurück.
Syntax
String.codeUnitAt(int index);
Beispiel
import 'dart:core';
void main(){
f1();
}
f1() {
String x = 'Runes';
print(x.codeUnitAt(0));
}
Es wird Folgendes erzeugt output - -
82
String.codeUnits-Eigenschaft
Diese Eigenschaft gibt eine nicht veränderbare Liste der UTF-16-Codeeinheiten der angegebenen Zeichenfolge zurück.
Syntax
String. codeUnits;
Beispiel
import 'dart:core';
void main(){
f1();
}
f1() {
String x = 'Runes';
print(x.codeUnits);
}
Es wird Folgendes erzeugt output - -
[82, 117, 110, 101, 115]
String.runes-Eigenschaft
Diese Eigenschaft gibt eine Iterable von Unicode-Codepunkten davon zurück string.Runes erweitert iterable.
Syntax
String.runes
Beispiel
void main(){
"A string".runes.forEach((int rune) {
var character=new String.fromCharCode(rune);
print(character);
});
}
Es wird Folgendes erzeugt output - -
A
s
t
r
i
n
g
Unicode-Codepunkte werden normalerweise als ausgedrückt \uXXXX, wobei XXXX ein 4-stelliger Hexadezimalwert ist. Um mehr oder weniger als 4 hexadezimale Ziffern anzugeben, setzen Sie den Wert in geschweifte Klammern. Man kann den Konstruktor der Runes-Klasse in der dart: core-Bibliothek dafür verwenden.
Beispiel
main() {
Runes input = new Runes(' \u{1f605} ');
print(new String.fromCharCodes(input));
}
Es wird Folgendes erzeugt output - -