文字列操作する方法を手癖で書けるほどSwiftに馴染んでいないので、いつでも見返せるようにメモしておきます。
文字列同士の結合
let str = "daru" + "yanagi" println(str)
var str = "daru" str += "yana" str += "gi" println(str)
区切り文字を使って文字列を分割する
split関数を使って分割します。
let source = "daruyanagi,shibayan,daisuke_nomura" let words = split(source) { $0 == "," } println(words)
上記のサンプルコードを実行してみました。
componentsSeparatedByStringメソッドを使う方法の方が直感的かもしれません。
let source = "daruyanagi,shibayan,daisuke_nomura" let words = source.componentsSeparatedByString(",") println(words)
応用例:区切り文字を使ってInt型の数値として分割する
特定の区切り文字を使って複数の数値を持つことがあります。
特にcsvでこのように表現することが多いと思うのですが、例えば「"3:6:8"」のようにひとつのフィールドに複数の数字が含む方法があります。Swiftを使ってInt型の配列として分割してしまいましょう。
let source = "3:6:8" let words = source.componentsSeparatedByString(":") let numbers = words.map({ (value) -> Int in return value.toInt()! }) println(numbers)
上記のサンプルコードを実行してみました。
配列を区切り文字を使って結合する
join関数を使って文字列を結合します。この時使用する区切り文字は,
といった1文字に限らず、好きな文字列を使用することができます。以下の例ではx
を使用しています。
let source = ["daruyanagi", "shibayan", "daisuke_nomura" ] let words = join(" x ", source) println(words)
上記のサンプルコードを実行してみました。
小文字を大文字に変換する
let source = "daruyanagi" println(source.uppercaseString)
上記のサンプルコードを実行してみました。
逆に「DARUYANAGI」という大文字の文字列を小文字に変換するためには、lowercaseStringメソッドを使うと良い。
let source = "DARUYANAGI" println(source.lowercaseString)