朧の.Netの足跡
問合せ先:support@oborodukiyo.info サイト内検索はこちら
Swift Swift4においてString Extensionを使ってC#でのLastIndexOfを実装してみた





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
                }
            }
    








良いやや良い普通やや悪い悪い

投稿日時評価コメント