読者です 読者をやめる 読者になる 読者になる

酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Swiftを使って文字列操作する

文字列操作する方法を手癖で書けるほど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)

上記のサンプルコードを実行してみました。

f:id:ch3cooh393:20150530102241p:plain

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)

上記のサンプルコードを実行してみました。

f:id:ch3cooh393:20150530104407p:plain

配列を区切り文字を使って結合する

join関数を使って文字列を結合します。この時使用する区切り文字は,といった1文字に限らず、好きな文字列を使用することができます。以下の例ではxを使用しています。

let source = ["daruyanagi", "shibayan",  "daisuke_nomura" ]
let words = join(" x ", source)
println(words)

上記のサンプルコードを実行してみました。

f:id:ch3cooh393:20150530102107p:plain

小文字を大文字に変換する

let source = "daruyanagi"
println(source.uppercaseString)

上記のサンプルコードを実行してみました。

f:id:ch3cooh393:20150530102948p:plain

逆に「DARUYANAGI」という大文字の文字列を小文字に変換するためには、lowercaseStringメソッドを使うと良い。

let source = "DARUYANAGI"
println(source.lowercaseString)

ユニコードの値(U+ 9312)をString型に変換する