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: 12Ale uwaga na Unicode! Policzmy znaki w emoji:
let emoji = "👨👩👧👦"
let emojiLength = emoji.count
print("Długość emoji: \(emojiLength)")Ile to jest?
Długość emoji: 1Emoji 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ż:
- Dokumentacja Swift
String: Apple Developer Documentation - Unicode i Swift String: Swift String and Unicode
- Wykład o stringach w Swift: Strings in Swift