是否有任何现有函数可以在另一个字符串中查找子字符串的索引?像.indexOfSubstring
thank 这样的方法可以做到这一点:
let word: String = "Hey there, how are you?"
let indexOf: Int = word.indexOfSubstring("ere, how are")
println("index = " + \(indexOf))
并打印:
index = 6
是否有任何现有函数可以在另一个字符串中查找子字符串的索引?像.indexOfSubstring
thank 这样的方法可以做到这一点:
let word: String = "Hey there, how are you?"
let indexOf: Int = word.indexOfSubstring("ere, how are")
println("index = " + \(indexOf))
并打印:
index = 6
您可以使用以下rangeOfString
方法:
import Foundation
let word: String = "Hey there, how are you?"
if let range = word.rangeOfString("ere, how are") {
let index = distance(word.startIndex, range.startIndex)
println("index = \(index)")
}
它返回一个范围,即搜索字符串的两侧 - 只需使用该startIndex
属性。
请注意,这是从NSString
Swift 中没有内置方法。您将需要自己实现它。另一个实现是
/// Get the start index of string
///
/// :return start index of .None if not found
public func indexOf(str: String) -> Int? {
return self.indexOfRegex(Regex.escapeStr(str))
}
/// Get the start index of regex pattern
///
/// :return start index of .None if not found
public func indexOfRegex(pattern: String) -> Int? {
if let range = Regex(pattern).rangeOfFirstMatch(self).toRange() {
return range.startIndex
}
return .None
}
这段代码来自这个库,它有一堆常见的 swift 类型的扩展,比如 String https://github.com/ankurp/Dollar.swift/blob/master/Cent/Cent/String.swift#L62
您可以查看有关使用情况的文档 http://www.dollarswift.org/#indexof-str-string-int