如何计算字符串的长度?例如,我有一个定义如下的变量:

var test1: String = "Scott"

然而,我似乎找不到字符串的长度方法。


当前回答

为Xcode 6 beta 4更新,更改方法utf16count-->utf16count

 var test1: String = "Scott"
 var length =  test1.utf16Count

Or

 var test1: String = "Scott"
 var length = test1.lengthOfBytesUsingEncoding(NSUTF16StringEncoding)

其他回答

您可以使用str.utf8.count和str.utf16.count,我认为这是最好的解决方案

在swift4中,我一直使用string.count,直到今天我发现

string.endIndex.encodedOffset

是更好的替代方法,因为它更快-对于50000个字符,字符串大约比.count快6倍。.count取决于字符串长度,但.endIndex.encodedOffset不一样。

但有一个“不”。它对带有表情符号的字符串不好,它会给出错误的结果,所以只有count是正确的。

你可以这样试试

var test1: String = "Scott"
var length =  test1.bridgeToObjectiveC().length

字符串和NSString是免费桥,因此您可以使用NSString和swift字符串的所有可用方法

let x = "test" as NSString
let y : NSString = "string 2"
let lenx = x.count
let leny = y.count

您可以使用SwiftString(https://github.com/amayne/SwiftString)这样做。

“string”.length//6

免责声明:我写了这个扩展