如何计算字符串的长度?例如,我有一个定义如下的变量:
var test1: String = "Scott"
然而,我似乎找不到字符串的长度方法。
如何计算字符串的长度?例如,我有一个定义如下的变量:
var test1: String = "Scott"
然而,我似乎找不到字符串的长度方法。
当前回答
雨燕1.1
extension String {
var length: Int { return countElements(self) } //
}
雨燕1.2
extension String {
var length: Int { return count(self) } //
}
斯威夫特2.0
extension String {
var length: Int { return characters.count } //
}
雨燕4.2
extension String {
var length: Int { return self.count }
}
let str = "Hello"
let count = str.length // returns 5 (Int)
其他回答
字符串和NSString是免费桥,因此您可以使用NSString和swift字符串的所有可用方法
let x = "test" as NSString
let y : NSString = "string 2"
let lenx = x.count
let leny = y.count
截至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
雨燕1.1
extension String {
var length: Int { return countElements(self) } //
}
雨燕1.2
extension String {
var length: Int { return count(self) } //
}
斯威夫特2.0
extension String {
var length: Int { return characters.count } //
}
雨燕4.2
extension String {
var length: Int { return self.count }
}
let str = "Hello"
let count = str.length // returns 5 (Int)
你可以这样试试
var test1: String = "Scott"
var length = test1.bridgeToObjectiveC().length
只需写一个扩展就可以得到长度:
extension String {
// MARK: Use if it's Swift 2
func stringLength(str: String) -> Int {
return str.characters.count
}
// MARK: Use if it's Swift 3
func stringLength(_ str: String) -> Int {
return str.characters.count
}
// MARK: Use if it's Swift 4
func stringLength(_ str: String) -> Int {
return str.count
}
}