Swift の substring は引数が Int
ではなく Index
となっていて、Index
の作り方がわからなくて調べたのでメモ。
// str の 4 文字目から 5 文字分取り出すサンプル
let str = "0123456789"
let index = 3
let length = 5
// `Index` を作る
let start = str.startIndex.advancedBy(index) // => 3
let end = start.advancedBy(length) // => 8
// `Range` を作る
let range = start..<end // => 3..<8
let substr1 = str.substringWithRange(range) // => "34567"
let substr2 = str[range] // => "34567"