使用言語とツールのバージョン情報は次のとおりです
swift3.1
Xcode 8.3.2
初心者の備忘録です。
お役に立てたら幸いです。
さっそくコメントいただきましたので修正させていただきました。
#スペース区切りの文字列の分割
import Foundation
let str = "abc def ghi"
let array = str.components(separatedBy:CharacterSet.whitespaces)
print(array[0])//"abc"
print(array[1])//"def"
print(array[2])//"ghi"
以前に他の方に書かれた記事を見ると2つ目のスペースも配列に入っているようでしたが、Swift3.1時点ではスペースは配列には入らないようになったみたいです。
また、.components
以下を入力補完するとわかるようにseparatedBy:
のあとはCharacterSet
型というのは明白なので省略してstr.components(separatedBy: .whitspaces)
でもOKです。
#カンマ区切りの文字列の分割
import Foundation
let str = "abc,def,ghi"
let array = str.components(separatedBy:",")
print(array[0])//"abc"
print(array[1])//"def"
print(array[2])//"ghi"
スペース区切りのときのseparatedBy:
のあとを","
ダブルクオーテーションで囲んだカンマで指定してあげるだけでできました!
たとえばスラッシュで区切った文字列を分解したいときは"/"
hogeで区切った文字を分解したいときは"hoge"
をseparatedBy:
のあとに指定すればOK。
#改行区切りの文字列の分割
import Foundation
let str = "abc\ndef\nghi"
let array = str.components(separatedBy:CharacterSet.newlines)
print(array[0])//"abc"
print(array[1])//"def"
print(array[2])//"ghi"
こちらもスペース区切りの文字列とほぼ一緒で違うのはseparatedBy:
のあとの指定をCharacterSet.newlines
とするだけです。
スペース区切りのと同様にstr.components(separatedBy: .newlines)
もOKです。
以上となります。ココ間違っている!もっといい方法がある!などなどなんでも指摘等いただけると嬉しいです。