如何计算字符串的长度?例如,我有一个定义如下的变量:
var test1: String = "Scott"
然而,我似乎找不到字符串的长度方法。
如何计算字符串的长度?例如,我有一个定义如下的变量:
var test1: String = "Scott"
然而,我似乎找不到字符串的长度方法。
当前回答
var str = "Hello, playground"
var newString = str as NSString
countElements(str)
这将统计正则Swift字符串中的字符
countElements((newString as String))
这将统计NSString中的字符
其他回答
如果您正在寻找一种更简洁的方法来获取字符串长度,请检查这个库,它有一系列对Swift内置类的扩展http://www.dollarswift.org/#length
使用这个库,您只需执行“Some Str”.length
现在(在Swift 2.3中),如果您使用:
myString.characters.count
该方法将返回“Distance”类型,如果您需要该方法返回Integer,则应按如下方式键入cast:
var count = myString.characters.count as Int
自Swift 1.2起,utf16Count已删除。现在应该使用全局count()函数并传递字符串的UTF16视图。以下示例。。。
let string = "Some string"
count(string.utf16)
在swift4中,我一直使用string.count,直到今天我发现
string.endIndex.encodedOffset
是更好的替代方法,因为它更快-对于50000个字符,字符串大约比.count快6倍。.count取决于字符串长度,但.endIndex.encodedOffset不一样。
但有一个“不”。它对带有表情符号的字符串不好,它会给出错误的结果,所以只有count是正确的。
test1.endIndex给出的结果与Swift 3上的test1.characters.count相同