けっこうSwift2.0で書き方が変わっているから気をつけよう。
指定したindexより後ろの文字列を取得
1 2 3 4 |
let str = "abcdefghijk" let idx = str.index(str.startIndex, offsetBy: 2) str[idx...] // cdefghijk (先頭から2番目以降) |
指定したindexより前の文字列を取得
1 2 3 4 |
let str = "abcdefghijk" let idx = str.index(str.endIndex, offsetBy: -3) str[...idx] // abcdefghi (最後から3番目以前) |
指定したrange(範囲)の文字列を取得
1 2 3 4 5 6 |
let str = "abcdefghijk" let fromIdx = str.index(str.startIndex, offsetBy: 2) let toIdx = str.index(str.endIndex, offsetBy: -3) str[fromIdx...toIdx] // cdefghi (最初から2番目以降〜最後から2番目以前) |
文字列から直接Indexを取得できないので、indexをstartIndexとendIndexで取得してから、相対的に数える方法だよ。
ちょっと一手間あるけど、覚えよう!(私もw)