Swift4でString型を拡張して、多言語のようにInt型で文字列の部分列を取得できるようにするものです。
よかったら使ってください。
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])
}
}
