通過調(diào)用全局countElements函數(shù),并將字符串作為參數(shù)進(jìn)行傳遞,可以獲取該字符串的字符數(shù)量。
let unusualMenagerie = "Koala, Snail, Penguin, Dromedary"
println("unusualMenagerie has \(countElements(unusualMenagerie)) characters")
// 打印輸出:"unusualMenagerie has 40 characters"
注意:
不同的 Unicode 字符以及相同 Unicode 字符的不同表示方式可能需要不同數(shù)量的內(nèi)存空間來存儲(chǔ)。所以 Swift 中的字符在一個(gè)字符串中并不一定占用相同的內(nèi)存空間。因此字符串的長(zhǎng)度不得不通過迭代字符串中每一個(gè)字符的長(zhǎng)度來進(jìn)行計(jì)算。如果您正在處理一個(gè)長(zhǎng)字符串,需要注意countElements函數(shù)必須遍歷字符串中的字符以精準(zhǔn)計(jì)算字符串的長(zhǎng)度。 另外需要注意的是通過countElements返回的字符數(shù)量并不總是與包含相同字符的NSString的length屬性相同。NSString的length屬性是基于利用 UTF-16 表示的十六位代碼單元數(shù)字,而不是基于 Unicode 字符。為了解決這個(gè)問題,NSString的length屬性在被 Swift 的String訪問時(shí)會(huì)成為utf16count。