我正在尝试查找字符串中子字符串的起始位置。它只返回正确的索引,如果它只是没有任何表情符号的字符。但是,当使用像表情符号这样的特殊字符时,返回的索引不正确。我想把每个表情符号或角色都算作一个角色。这是我的代码:
extension String {
func index(of string: String, options: CompareOptions = .literal) -> Index? {
return range(of: string, options: options)?.lowerBound
}
func indexes(of string: String, options: CompareOptions = .literal) -> [Index] {
var result: [Index] = []
var start = startIndex
while let range = range(of: string, options: options, range: start..<endIndex) {
result.append(range.lowerBound)
start = range.upperBound
}
return result
}
}
有什么建议吗?谢谢!