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

var test1: String = "Scott"

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


当前回答

我的两美分换雨燕3/4

如果需要有条件地编译

    #if swift(>=4.0)
            let len = text.count
        #else
            let len = text.characters.count
        #endif

其他回答

只需写一个扩展就可以得到长度:

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
    }
}

截至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

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

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

Or

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

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

“string”.length//6

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

斯威夫特4

“string”.count

;)

雨燕3

extension String {
    var length: Int {
        return self.characters.count
    }
}

用法

“string”.length