Swiftで文字列を区切り文字で分割する方法について記載します。
目次
区切り文字で分割する方法
区切り文字で分割するには、split メソッド を使用します。
split メソッド で区切り文字 を指定する方法は2つあります。
1. 区切り文字を 文字列で直接指定する 方法
2. 区切り文字を クロージャーで指定する 方法
また、引数を指定することで
・最大分割数
・区切り文字が連続で出現した時の分割方法
を指定できます。
1. 区切り文字を文字列で直接指定する方法
引数に 区切り文字 のみ指定する方法
1 2 3 4 5 |
// 文字列を分割する let str1 = "aaa/bbb/ccc" let result1 = str1.split(separator: "/") print( result1 ) // ["aaa", "bbb", "ccc"] |
引数に 区切り文字・最大分割数 を指定する方法
1 2 3 4 5 6 7 |
let str2 = "aaa/bbb/ccc" let result2 = str2.split(separator: "/", maxSplits: 1) print( result2 ) // ["aaa", "bbb/ccc"] let result3 = str2.split(separator: "/", maxSplits: 5) print( result3 ) // ["aaa", "bbb", "ccc"] |
引数に 区切り文字・区切り文字が連続した場合の動作 を指定する方法
1 2 3 4 5 6 7 8 9 |
let str3 = "aaa//bbb//ccc" // 連続する区切り文字は空文字として返されます let result4 = str3.split(separator: "/", omittingEmptySubsequences: false) print( result4 ) // ["aaa", "", "bbb", "", "ccc"] // デフォルトは連続する区切り文字は、1文字文の区切り文字として扱われます let result5 = str3.split(separator: "/", omittingEmptySubsequences: true) print( result5 ) // ["aaa", "bbb", "ccc"] |
2. 区切り文字をクロージャーで指定する方法
引数に 区切り文字 のみ指定する方法
1 2 3 4 |
let str1 = "aaa/bbb/ccc" let result1 = str1.split( whereSeparator: { $0 == "/" } ) print( result1 ) // ["aaa", "bbb", "ccc"] |
引数に 区切り文字・最大分割数 を指定する方法
1 2 3 4 5 6 7 |
let str2 = "aaa/bbb/ccc" let result2 = str2.split( maxSplits: 1, whereSeparator: { $0 == "/" } ) print( result2 ) // ["aaa", "bbb/ccc"] let result3 = str2.split( maxSplits: 5, whereSeparator: { $0 == "/" } ) print( result3 ) // ["aaa", "bbb", "ccc"] |
引数に 区切り文字・区切り文字が連続した場合の動作 を指定する方法
1 2 3 4 5 6 7 8 9 |
let str3 = "aaa//bbb//ccc" // 連続する区切り文字は空文字として返されます let result4 = str3.split( omittingEmptySubsequences: false, whereSeparator: { $0 == "/" } ) print( result4 ) // ["aaa", "", "bbb", "", "ccc"] // デフォルトは連続する区切り文字は、1文字文の区切り文字として扱われます let result5 = str3.split( omittingEmptySubsequences: true, whereSeparator: { $0 == "/" }) print( result5 ) // ["aaa", "bbb", "ccc"] |