經(jīng)過多次測試孽江,swift原生api對字符串處理的效率特別慢门坷,所以宣鄙,在遇到需要統(tǒng)計字符串長度,取某個下標(biāo)的字符串時默蚌,應(yīng)該盡量把字符串轉(zhuǎn)換成Array來處理冻晤。
例如:
let str = "hello world!"
//1.統(tǒng)計字符長度
print(str.count) //效率低
let arr = Array(str)
print(arr.count) //快
//2.取某個下標(biāo)的字符串
let index = 5
let sub = String(str[str.index(str.startIndex, offsetBy: index)]) // sub = "o",效率低
let sub1 = String(arr[index]) //快
取某個范圍的子串:
let sub2 = Array(arr[start..<end]).map { (char) -> String in
return String(char)
}.joined() //慢
let start = s.index(s.startIndex, offsetBy: start)
let end = s.index(s.startIndex, offsetBy: end)
let sub3 = String(s[start..<end]) //稍微快一些
let sub4 = String(arr[start..<end]) //最簡短,速度也不快
不得不吐槽一下绸吸,swift處理字符串的效率真的太低下了