如何在Swift 2.2中找出字符串[declared String type, not NSString]的长度(按字节)?
我知道一种解决方法是使用_bridgeToObejectiveC().length
还有其他出路吗?
someString.characters.count返回字符串的长度。 我想我没有得到您的真正要求。
字符数和长度是两件事。 Swift使用unicode。 在unicode中,不同字符占用的字节数不同。 我想知道一个字符串占用了多少字节。
let str: String ="Hello, World"
print(str.characters.count) // 12
let byteLength = str.lengthOfBytesUsingEncoding(NSUTF8StringEncoding)
print("byte lenght: \(byteLength)")//12
let str2: String ="你好"
print(str2.characters.count) // 2
let byteLength2 = str.lengthOfBytesUsingEncoding(NSUTF8StringEncoding)
print("byte lenght: \(byteLength2)")//12
let str: String ="Hello, World"
print(str.characters.count) // 12
let str1: String ="Hello, World"
print(str1.endIndex) // 12
let str2 ="Hello, World"
NSString(string: str2).length //12
在Swift 1.2和Swift 2.0中引用String的长度并获取String的长度
如果您需要执行特殊的Unicode恶作剧,还可以查看str.utf8.count和str.utf16.count
那是一个答案
我认为类型转换是使用NSString类的方法和属性的另一种简便方法。
print((str as NSString).length)
试试这个代码:
Swift
let test : String ="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
let bytes : NSInteger = test.lengthOfBytesUsingEncoding(NSUTF8StringEncoding);
NSLog("%i bytes", bytes);
Objective C
请参阅此链接:
NSString的字节长度是多少?
这几乎是KawaiKx表示他们不感兴趣的:NSString方式...
您也使用String。 这不是导入的字符串,以查找导入的字节。
好的,现在您已经编辑了答案。 我同意这并不重要,我只是指出了这一点。 另外,我不知道您的评论怎么说,对不起。