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 件のコメント :
コメントを投稿