2016-09-05 10 views
5

Próbuję obliczyć rozmiar w bajtach String w Swift, ale nie wiem, jaki jest rozmiar postaci; w ilu bajtach jest jeden kod?Obliczyć rozmiar w bajtach ciągu Swift

Powiedzmy mam ciąg: let str = "hello, world"

Chcę wysłać to do mojego serwera, ale mój serwer akceptuje tylko ciągi pod 32 bajtów. Jak kontrolować długość mojego napisu?

+2

Wygląda na to, że możesz być zainteresowany [Jak skrócić NSString, który może zawierać emotikony do maksymalnej długości?] (Http://stackoverflow.com/q/31733100) –

+0

Naprawdę interesujące naprawdę, dzięki! – Randy

Odpowiedz

6

To wszystko zależy od kodowania znaków, załóżmy UTF8:

let string = "abde" 
let size = string.utf8.count 

pamiętać, że nie wszystkie postacie mają tę samą wielkość bajt UTF8. Jeśli twój ciąg znaków to ASCII, możesz przyjąć 1 bajt na znak.

+0

To by zwróciło liczbę utf8 char, ale każdy z nich jest kodowany na 1 do 2 bajtów, więc nie podałby rzeczywistego rozmiaru napisu, prawda? – Randy

+0

@Randy Tak, podałby rzeczywisty rozmiar napisu. Jeśli potrzebujesz rozmiaru każdej postaci, zapytaj o rozmiar każdej postaci osobno. – Sulthan

+0

Dobra, rozumiem, wielkie dzięki! Przyjmuję odpowiedź w 8 minut .. – Randy