こんにちは。きんくまです。
イカなんですがB+から全く上がれません、、。そうかと思うとBに落ちたり。うーん。この辺が限界なんでしょうか、A-は遠い、、。
ところで、Swift2だといろいろと変わったところがあるみたいです。
今回はSwift1との差分部分は気にせず文字列操作を自分用にメモしたいと思いました。
StackOverflowを毎回検索するのはちと大変かなと、、。
文字列の操作
定義
let str = "abcde"
文字数を確認したい
let strCount = str.characters.count print("str count = \(strCount)") // -> str count = 5
文字列を連結
これは + なので簡単ですね
let numStr = "12345" let strConcat = str + numStr print("concat = \(strConcat)")
文字列の検索
let strRange:Range? = str.rangeOfString("bc") print("\(strRange?.startIndex), \(strRange?.count)")
見つからなかったときはnilが返るのでif文だとこんな感じに書けます
if str.rangeOfString("z") != nil { print("hit") }else{ print("not hit") }
文字列の置換
var str2 = "123456" let replacedStr = str2.stringByReplacingOccurrencesOfString("34", withString: "78") print("\(replacedStr)") // -> 127856
indexを指定して置換
var str2 = "123456" let replaceStartIndex = str2.startIndex.advancedBy(2) let replaceEndIndex = replaceStartIndex.advancedBy(3) let replacedStr2 = str2.stringByReplacingCharactersInRange(Range(start: replaceStartIndex, end: replaceEndIndex), withString: "9") print("\(replacedStr2)") // ->1296
部分的に抜き出す substrみたいの
let substrStartIndex = str.startIndex.advancedBy(1) let substrEndIndex = substrStartIndex.advancedBy(2) let substr = str.substringWithRange(Range(start: substrStartIndex, end: substrEndIndex)) print("substr = \(substr)") //-> substr = bc
大文字 / 小文字
let uppercase = str.uppercaseString print("upper = \(uppercase)") // -> upper = ABCDE let lowercase = str.lowercaseString print("lower = \(lowercase)") // -> lower = abcde
文字列から配列へ変換 splitみたいの
let str_numStr = str + " " + numStr let splittedStr:[String] = str_numStr.componentsSeparatedByString(" ") print("\(splittedStr[0]), \(splittedStr[1])")
感想
substrみたいのがRangeを定義してちと面倒。subscriptを定義してもいいかもしれないですね。
■ 自作iPhoneアプリ 好評発売中!
・フォルメモ - シンプルなフォルダつきメモ帳
・ジッピー電卓 - 消費税や割引もサクサク計算!
■ LINEスタンプ作りました!
毎日使える。とぼけたウサギ