Swift4でString型を拡張して、文字列の最後から目的の文字列を探してそのインデックスを返すメソッドです。。
よかったら使ってください。
import Foundation
extension String {
func getString(startIndex: Int, count: Int) -> String {
var count = count
//指定された開始位置のインデックスを取得
let sIndex: Index = self.index(self.startIndex, offsetBy: startIndex)
//目的の文字列の残りの長さを取得
let length: Int = self.distance(from: sIndex, to: self.endIndex)
//指定された文字数と、残りの文字数を比較して文字数を超えないように調整
if count > length {
count = length
}
//返す文字列の最後のインデックスを計算
let eIndex: Index = self.index(sIndex, offsetBy: count)
return String(self[sIndex..<eIndex])
}
func lastIndexOf(value: String) -> Int? {
//文字列の長さを取得
let length: Int = self.distance(from: self.startIndex, to: self.endIndex)
//文字列の最後から目的の文字列を探す
for i in 0..<length {
if self.getstring(startindex length - i - value.count, count value.count) == value {
return length - i - value.count
}
}
//見つからない時はnilを返す
return nil
}
}
