初见

swift中提高字符串处理效率

2020-04-28  本文已影响0人  动物园园长熊熊酱

经过多次测试,swift原生api对字符串处理的效率特别慢,所以,在遇到需要统计字符串长度,取某个下标的字符串时,应该尽量把字符串转换成Array来处理。
例如:

let str = "hello world!"

//1.统计字符长度
print(str.count) //效率低
let arr = Array(str)
print(arr.count) //快

//2.取某个下标的字符串
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处理字符串的效率真的太低下了

上一篇 下一篇

猜你喜欢

热点阅读