如何计算字符串的长度?例如,我有一个定义如下的变量:
var test1: String = "Scott"
然而,我似乎找不到字符串的长度方法。
如何计算字符串的长度?例如,我有一个定义如下的变量:
var test1: String = "Scott"
然而,我似乎找不到字符串的长度方法。
当前回答
苹果使它不同于其他主要语言。当前的方法是调用:
测试1字符计数
但是,要小心,当你说长度时,你指的是字符数而不是字节数,因为当你使用非ascii字符时,这两个字符可能不同。
例如"你好啊hi“.characters.count将为您提供5个字节,但这不是字节数。要获得真正的字节数,您需要执行“你好啊hi“.lengthOfBytes(使用:String.Encoding.utf8)。这将为您提供11。
其他回答
在swift4中,我一直使用string.count,直到今天我发现
string.endIndex.encodedOffset
是更好的替代方法,因为它更快-对于50000个字符,字符串大约比.count快6倍。.count取决于字符串长度,但.endIndex.encodedOffset不一样。
但有一个“不”。它对带有表情符号的字符串不好,它会给出错误的结果,所以只有count是正确的。
test1.characters.count
将获取字符串中字母/数字等的数量。
ex:
test1 = "StackOverflow"
print(test1.characters.count)
(打印“13”)
var str = "Hello, playground"
var newString = str as NSString
countElements(str)
这将统计正则Swift字符串中的字符
countElements((newString as String))
这将统计NSString中的字符
我的两美分换雨燕3/4
如果需要有条件地编译
#if swift(>=4.0)
let len = text.count
#else
let len = text.characters.count
#endif
截至Swift 4+
只是:
test1.count
出于原因。
(感谢Martin R)
截至Swift 2:
在Swift 2中,苹果将全局函数改为协议扩展,即与任何符合协议的类型相匹配的扩展。因此,新语法为:
test1.characters.count
(感谢JohnDule的提醒)
截至Swift 1
使用计数字符方法:
let unusualMenagerie = "Koala 🐨, Snail 🐌, Penguin 🐧, Dromedary 🐪"
println("unusualMenagerie has \(count(unusualMenagerie)) characters")
// prints "unusualMenagerie has 40 characters"
从Apple Swift指南
(注意,对于1.2之前的Swift版本,这将是countElements(unusualMenagerie))
对于变量
length = count(test1) // was countElements in earlier versions of Swift
或者可以使用test1.utf16count