Znalezienie długości ciągu znaków

Swift:
Znalezienie długości ciągu znaków

How to:

Jak to zrobić:

W Swift obliczenie długości stringa to bułka z masłem. Użyj właściwości count na instancji String. Oto jak to wygląda w kodzie:

let greeting = "Dzień dobry!"
let length = greeting.count
print("Długość napisu: \(length)")

Wynik działania kodu:

Długość napisu: 12

Ale uwaga na Unicode! Policzmy znaki w emoji:

let emoji = "👨‍👩‍👧‍👦"
let emojiLength = emoji.count
print("Długość emoji: \(emojiLength)")

Ile to jest?

Długość emoji: 1

Emoji rodzinne traktowane jest jako jeden znak, mimo że jest złożone z kilku innych.

Deep Dive:

W Głąb Tematu:

W przeszłości liczenie znaków w stringu w Swift mogło być bardziej skomplikowane - używano indeksów, co było mniej przejrzyste. Dziś mamy .count, ale warto pamiętać, że Swift traktuje stringi jako kolekcje znaków Unicode, a nie proste tablice bajtów. To oznacza, że każdy grafem, czyli najmniejsza wizualna jednostka tekstu, liczy się jako jeden “znak” bez względu na liczbę składników Unicode, z której się składa.

Alternatywy? Można bawić się w niższopoziomowe manipulacje, ale po co, skoro .count robi to za nas efektywnie i bezpiecznie.

Szczegół implementacyjny: Swift używa czegoś zwanego “grapheme clustering”, co jest zgodne ze standardem Unicode. Podczas przetwarzania tekstu trzeba pamiętać, że operacje na stringach mogą być kosztowne czasowo - zwłaszcza, gdy pracujemy z bardzo długimi ciągami znaków.

See Also:

Zobacz Również: