【发布时间】:2017-02-02 11:54:24
【问题描述】:
我正在尝试解析一个 46k 字符的文本文档,但这样做需要很长时间。这就是我所做的:
for i in 0..<html.length() - SEARCH_START.length() {
if html.substring(i, end: i+SEARCH_START.length()) == SEARCH_START {
start = i + SEARCH_START.length();
break;
}
if i % 1000 == 0 {
NSLog("i = \(i)")
}
}
extension String {
public func length () -> Int {
return self.characters.count
}
public func substring(_ start : Int, end : Int) -> String {
if self.characters.count <= 0 {
return ""
}
let realEnd = end>0 ? end : 0
return self.substring(with: self.index(self.startIndex, offsetBy: start)..<self.index(self.startIndex, offsetBy: realEnd))
}
}
抱歉,必须扩展 String 类以减少 Android 的重写。 因此,每 6.5 秒触发一次日志,接下来的一千意味着 几乎 5 分钟 到达终点。整个过程应该需要几毫秒。这是怎么回事?有什么办法可以加快速度?
【问题讨论】:
-
你想在这里完成什么?实际的解析是什么?
-
我认为有更好的方法来查找子字符串。或者使用 Scanner 你可以分析一个字符串。
-
考虑像github.com/tid-kijyun/Kanna这样的解析库
标签: ios swift string swift3 substring