Znajdowanie długości łańcucha znaków

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.