別の文字列内の部分文字列のインデックスを検索する既存の関数はありますか? .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
}
このコードは、String https://github.com/ankurp/Dollar.swift/blob/master/Cent/Cent/String.swift#L62などの一般的な Swift 型の拡張機能を多数持つこのライブラリからのものです 。
使用法に関するドキュメントをチェックアウトできます http://www.dollarswift.org/#indexof-str-string-int