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ż:
- Dokumentacja Swift
String
: Apple Developer Documentation - Unicode i Swift String: Swift String and Unicode
- Wykład o stringach w Swift: Strings in Swift