修改切片从字符串到字符串函数,以返回最后一个索引,如果找不到字符串
我有一个切片function,我在这里 。 我想知道如何修改它,以便如果找不到to
字符串,但是from
找到它将返回整个字符串的结束索引( .count-1
)。 现在,如果我调用.slice
并且找不到字符串,那么它显然会崩溃。
extension String { func slice(from: String, to: String) -> String? { return (range(of: from)?.upperBound).flatMap { substringFrom in (range(of: to, range: substringFrom..<endIndex)?.lowerBound).map { substringTo in String(self[substringFrom..<substringTo]) } } } }
这是一个可能的解决方案:
extension String { func slice(from: String, to: String) -> String? { if let fromRng = range(of: from) { if let toRng = range(of: to, range: fromRng.upperBound..
它不像原版那样“花哨”,但我个人认为逻辑更容易阅读。