2016-09-05 22 views
5

Swift cinsinden bir String boyutundaki bayt cinsinden hesaplamayı deniyorum ancak bir karakterin boyutunun ne olduğunu bilmiyorum; Kaç tane bayt kodlanmış? let str = "hello, world"Bir Swift String'in bayt cinsinden boyutunu hesaplayın

benim sunucuya iletmektedirler istiyorum ama benim sunucu sadece 32 byte altında dizeleri kabul eder:

ı bir dize var diyelim. İplerimin uzunluğunu nasıl kontrol edebilirim? Her karakter kodlaması bağlıdır

+2

İlginizi çekebilecek gibi görünüyor [Maksimum uzunluğa emojiyi içerebilecek bir NSString nasıl kısaltılır?] (Http://stackoverflow.com/q/31733100) –

+0

Gerçekten çok ilginç, teşekkürler! – Randy

cevap

6

, en UTF8'i varsayalım: tüm karakterler UTF8 aynı bayt boyutuna sahip

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

Not. Dizginiz ASCII ise, karakter başına 1 bayt varsayabilirsiniz.

+0

Bu, utf8 char sayısını döndürür, ancak her biri 1 ile 2 bayt arasında kodlanır, bu yüzden dizenin gerçek boyutunu vermez, değil mi? – Randy

+0

@Randy Evet, dizenin gerçek boyutunu verirdi. Her karakterin büyüklüğüne ihtiyacınız varsa, her karakterin boyutunu ayrı ayrı isteyin. – Sulthan

+0

Pekala, anladım, çok teşekkürler! Cevabı 8 dakika içinde kabul edeceğim .. – Randy

İlgili konular