Swift の String(文字列)の結合と分割

ここでは Swift の String(文字列)の結合と分割する方法についてご説明します。

Swift の String(文字列)を結合する

Swift の String(文字列)を結合したい時は + 演算子や、 += 演算子、String Interpolation(文字列補間)などが使えます。

この三つの方法で、以下のような greet と name という文字列を結合してみます。

var greet = "Hello"
let name = "Yuka"

let string1 = greet + ", " + name + "!"
let string2 = "\(greet), \(name)!"

greet += ", "
greet += name
greet += "!"
let string3 = greet

print(string1)
print(string2)
print(string3)

実行結果は次のようになります。 string1、string2、string3 の値は同じで、それぞれ文字列が結合されています。

Hello, Yuka!
Hello, Yuka!
Hello, Yuka!

このようなケースでは、String Interpolation(文字列補間)で結合するのが一番感覚的にわかりやすく簡単ですね。


Swift の String(文字列)を分割する

Swift の String(文字列)を分割したい時には、split() メソッドが使えます。

split() メソッドには、separator、maxSplits、omittingEmptySubsequences という引数が指定でき、戻り値として分割された、元の文字列をポイントする Substring 型の配列を返します。

separator のみ必須で、何の文字で分割するかを指定します。

maxSplits は何回分割するかで、デフォルトは Int の最大値になっています。

omittingEmptySubsequences は分割した後で、空文字列を戻り値の要素からはぶくかどうかで、デフォルトは True です。


それでは、split() を使って文字列を分割してみましょう。

let message = "My name is Yuka.  "

print(message.split(separator: " "))
print(message.split(separator: " ", maxSplits: 1))

実行結果は次のようになり、message 文字列が、空白で分割されています。

maxSplits を 1 に指定したほうは、一回だけ分割されています。

["My", "name", "is", "Yuka."]
["My", "name is Yuka.  "]

Swift の String(文字列)を分割して String の配列を取得する

Swift の文字列の split() メソッドは Substring 型の配列を返し、Substring は元の文字列をポイントしたスライスでした。

分割された String の配列を取得したい時は、NSString の components() メソッドを使って取得することができます。

components() メソッドの引数は、separatedBy のみなので、分割の結果、空文字列の要素があれば、それも配列に含まれます。

また、 NSString のメソッドを使うので、Foundation のインポートが必要になります。


import Foundation

let message = "My name is Yuka.  "

let splitResult1 = message.split(separator: " ")
let splitResult2 = message.components(separatedBy: " ")

print(splitResult1)
print(type(of: splitResult1))
print(splitResult2)
print(type(of: splitResult2))

実行結果は次のようになります。 components() メソッドで分割したほうは、String の Array になっていますね。

["My", "name", "is", "Yuka."]
Array<Substring>
["My", "name", "is", "Yuka.", "", ""]
Array<String>

以上、Swift の String(文字列)の結合と分割する方法についてご説明しました。

© 2024 iOS 開発入門