获取String的长度

获取String的长度

你怎么得到一个长度String?例如,我有一个变量定义如下:

var test1: String = "Scott"

但是,我似乎无法在字符串上找到长度方法。


繁花不似锦
浏览 1065回答 3
3回答

天涯尽头无女友

对于Swift 2.0和3.0,请使用test1.characters.count。但是,你应该知道一些事情。所以,请继续阅读。在Swift中计算字符数在Swift 2.0之前,它count是一个全局函数。从Swift 2.0开始,它可以被称为成员函数。test1.characters.count它将返回a中的实际Unicode字符数String,因此它是最正确的替代方法,如果您打印字符串并手动计算字符,您将得到相同的结果。但是,由于Strings在Swift中实现了这种方式,因此字符并不总是占用相同数量的内存,因此请注意,这与其他语言中的常用字符数方法完全不同。例如,您也可以使用 test1.utf16.count但是,如下文所述,返回值不保证是相同的调用count上characters。从语言参考:扩展的字形集群可以由一个或多个Unicode标量组成。这意味着不同的字符和相同字符的不同表示可能需要不同的内存量来存储。因此,Swift中的字符不会在字符串表示中占用相同数量的内存。因此,如果不迭代字符串以确定其扩展的字形集群边界,则无法计算字符串中的字符数。如果使用特别长的字符串值,请注意characters属性必须遍历整个字符串中的Unicode标量,以确定该字符串的字符。characters属性返回的字符数不总是与包含相同字符的NSString的length属性相同。NSString的长度基于字符串的UTF-16表示中的16位代码单元的数量,而不是字符串中Unicode扩展的字形集群的数量。完美地说明上述情况的一个例子是检查包含单个表情符号字符的字符串的长度,如注释中的n00neimp0rtant所指出的。var emoji = "?"emoji.characters.count             //returns 1emoji.utf16.count                  //returns 2
打开App,查看更多内容
随时随地看视频慕课网APP