Swift2.2

Swift で substring

More than 1 year has passed since last update.

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"