2016-09-05 17 views
5

Tôi đang cố gắng tính kích thước theo byte là String trong Swift nhưng tôi không biết kích thước của một ký tự là gì; trong bao nhiêu byte là một mã?Tính kích thước theo byte của một Chuỗi Swift

Hãy nói rằng tôi có một chuỗi: let str = "hello, world"

Tôi muốn gửi đến máy chủ của tôi, nhưng máy chủ của tôi sẽ chỉ chấp nhận chuỗi dưới 32 byte. Làm thế nào tôi có thể kiểm soát độ dài của chuỗi của tôi?

+2

Dường như bạn có thể quan tâm [Làm cách nào để rút ngắn NSString có thể bao gồm biểu tượng cảm xúc với độ dài tối đa?] (Http://stackoverflow.com/q/31733100) –

+0

Thực sự thú vị thực sự, cảm ơn! – Randy

Trả lời

6

Tất cả đều phụ thuộc vào mã hóa ký tự, chúng ta hãy giả sử UTF8:

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

Lưu ý rằng không phải tất cả các nhân vật có kích thước byte cùng trong UTF8. Nếu chuỗi của bạn là ASCII, bạn có thể giả định 1 byte cho mỗi ký tự.

+0

Điều đó sẽ trả về số lượng của utf8 char nhưng mỗi người trong số họ được mã hóa trên 1 đến 2 byte, do đó, nó sẽ không cung cấp cho kích thước thực tế của chuỗi, phải không? – Randy

+0

@Randy Có, nó sẽ cho kích thước thực của chuỗi. Nếu bạn cần kích thước của mỗi nhân vật, hãy hỏi kích thước của mỗi nhân vật một cách riêng biệt. – Sulthan

+0

Được rồi, tôi hiểu rồi, cảm ơn rất nhiều! Tôi sẽ chấp nhận câu trả lời trong 8 phút .. – Randy

Các vấn đề liên quan