[swift] 文字列操作 (splitとcomponents)の違い

Swiftで文字列を特定の文字で分割したい時にsplitとcomponentsがありますがそれぞれ動作が違うので注意が必要です。 ### split - 結果はSubstringの配列になる - 区切り文字のみの部分は無くなる (注意!) ### components - 結果はStringの配列になる - 区切り文字のみの部分は空文字になる ```c `gutter:true; let word = "3.14,1.142,2.64,,135" let split = word.split(separator: ",") print("\(split) : \(split.count)") // ["3.14", "1.142", "2.64", "135"] : 4 let components = word.components(separatedBy: ",") print("\(components) : \(components.count)") // ["3.14", "1.142", "2.64", "", "135"] : 5 ``` Substringは元の文字列の部分を表現します(同じメモリーを参照する) Stringとして扱いたい場合はString(_:)イニシャライザを使用します。 また、splitの場合は区切り文字のみの部分は取得できないのでcsvなどを処理する場合は注意が必要です。

0 件のコメント :

コメントを投稿