サンプルソース
先頭からn文字取得
var text = "subStringText" let n = 3 text = text.substring(to: text.index(text.startIndex, offsetBy: n)) // swift2 // text = text.substringToIndex(text.startIndex.advancedBy(n))
実行結果は"sub"
末尾n文字削除
var text = "subStringText" let n = 4 text = text.substring(to: text.index(text.endIndex, offsetBy: -n)) // swift2 // text = text.substringToIndex(text.endIndex.advancedBy(-n))
実行結果は"subString"
後ろからn文字取得する
var text = "subStringText" let n = 10 text = text.substring(from: text.index(text.endIndex, offsetBy: -n)) // swift2 // text = text.substringFromIndex(text.endIndex.advancedBy(-n))
実行結果は"StringText"
先頭n文字を削除
var text = "subStringText" let n = 3 text = text.substring(from: text.index(text.startIndex, offsetBy: n)) // swift2 // text = text.substringFromIndex(text.startIndex.advancedBy(n))
実行結果は"StringText"
n文字からm文字まで切り出し
var text = "subStringText" let n = 4 let m = 9 let startIndex = text.index(text.startIndex, offsetBy: n-1) let endIndex = text.index(text.startIndex, offsetBy: m) text.substring(with: startIndex..<endIndex) text = text[startIndex..<endIndex] // swift2 // text = text.substringWithRange( // Range(text.startIndex.advancedBy(n-1)..<text.startIndex.advancedBy(m)))
実行結果は"String"
text.substring(XXXX) だけでなく text[XXXX] と書くことも可能
参考
http://gootara.org/library/2016/09/s3substr.html
こっちは前回書いた記事(swift2バージョン)
Swift2の文字列処理・切り出し方法をまとめた(substring)
この書き方はもうちょっとどうにかならなかったのか