Dart:
Znajdowanie długości łańcucha znaków
Jak to zrobić:
Dart umożliwia łatwe uzyskanie długości ciągu znaków, używając właściwości length
. Oto podstawowy przykład:
void main() {
String myString = "Hello, Dart!";
print("Długość '\(myString)' wynosi: \(myString.length)");
// Wynik: Długość 'Hello, Dart!' wynosi: 12
}
Ta właściwość liczy liczbę jednostek kodu UTF-16 w ciągu znaków, co odpowiada długości ciągu znaków w większości typowych przypadków użycia.
Do bardziej zniuansowanego przetwarzania tekstu, zwłaszcza z udziałem znaków Unicode spoza Podstawowej Wielojęzycznej Płaszczyzny (BMP), rozważ użycie pakietu characters
do liczenia klastrów grafemów, które dokładniej reprezentują znaki postrzegane przez użytkownika.
Najpierw dodaj characters
do swojego pubspec.yaml
:
dependencies:
characters: ^1.2.0
Następnie użyj go w ten sposób:
import 'package:characters/characters.dart';
void main() {
String myEmojiString = "👨👩👧👦 family";
print("Długość '\(myEmojiString)' wynosi: \(myEmojiString.characters.length)");
// Wynik: Długość '👨👩👧👦 family' wynosi: 8
}
W tym przykładzie myEmojiString.characters.length
podaje nam długość w terminach klastrów grafemów Unicode, co jest bardziej dokładnym odzwierciedleniem dla ciągów znaków zawierających złożone znaki, takie jak emotikony czy połączone znaki diakrytyczne.