2016-09-05 6 views
5

Ich versuche, die Größe in Bytes von String in Swift zu berechnen, aber ich weiß nicht, wie groß ein Zeichen ist; In wie vielen Bytes ist einer codiert?Berechnen Sie die Größe in Bytes eines Swift String

Sagen wir, ich habe eine Zeichenfolge: let str = "hello, world"

ich das meinem Server senden wollen, aber mein Server nur Strings unter 32 Bytes akzeptieren. Wie würde ich die Länge meiner Saite kontrollieren?

+2

Scheint so, als könnte es dich interessieren [Wie verkürze ich einen NSString, der Emojis auf die maximale Länge enthalten könnte?] (Http://stackoverflow.com/q/31733100) –

+0

Wirklich interessant in der Tat, danke! – Randy

Antwort

6

Alles auf der Zeichencodierung abhängig ist, lassen Sie uns annehmen, UTF8:

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

Beachten Sie, dass nicht alle Zeichen die gleiche Byte-Größe in UTF8 haben. Wenn Ihre Zeichenfolge ASCII ist, können Sie 1 Byte pro Zeichen annehmen.

+0

Das würde die Anzahl von utf8 char zurückgeben, aber jeder von ihnen ist auf 1 bis 2 Bytes codiert, so würde es nicht die tatsächliche Größe der Zeichenfolge geben, oder? – Randy

+0

@Randy Ja, es würde die tatsächliche Größe der Zeichenfolge geben. Wenn Sie die Größe jedes Zeichens benötigen, fragen Sie nach der Größe jedes Zeichens. – Sulthan

+0

Alles klar, ich verstehe, vielen Dank! Ich werde die Antwort in 8 Minuten akzeptieren. – Randy

Verwandte Themen