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

var test1: String = "Scott"

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


当前回答

如果您只是想查看字符串是否为空(检查长度是否为0),Swift提供了一个简单的字符串布尔测试方法

myString.isEmpty

硬币的另一面是人们在ObjectiveC中询问如何询问字符串是否为空,答案是检查长度是否为0:

NSString为空

其他回答

截至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.4、Swift 1.2和iOS 8.4:

    //: Playground - noun: a place where people can play

    import UIKit

    var str = "  He\u{2606}  "
    count(str) // 7

    let length = count(str.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())) as Int // 3
    println(length == 3) // true

您可以将此函数添加到扩展

extension NSString { 
    func charLength() -> Int {
        return count(self as String)
    }
}

test1.endIndex给出的结果与Swift 3上的test1.characters.count相同

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

“string”.length//6

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