Swift で配列からカンマ区切りの文字列を生成する方法
ここでは Swift で配列からカンマ区切りの文字列を生成する方法についてご説明します。
Swift で文字列の配列からカンマ区切りの文字列を生成する
Swift で文字列の配列からカンマ区切りの文字列を生成するには配列のメソッドの joined(separator:) 関数を使って生成することができます。
array.joined(separator:)
joined(separator:) 関数は配列の要素が String 型の時に使え、指定した separator をはさんで要素をつなげた、新しい文字列を返します。
では、joined(separator:) 関数を使って文字列の配列からカンマ区切りの文字列を生成してみましょう。
次のような names という配列の要素をカンマ区切りでつなげた文字列を生成するには次のようにできます。
let names = ["Tanaka", "Suzuki", "Sato", "Yamada"]
let csv = names.joined(separator: ",")
print(csv)
実行結果は次のようになり、カンマ区切りの文字列が csv に代入されているのがわかります。
Tanaka,Suzuki,Sato,Yamada
Swift で数値の配列からカンマ区切りの文字列を生成する
Swift で数値の配列からカンマ区切りの文字列を生成するには、まず数値の配列を文字列の配列に変換する必要があります。
要素の型の変換するには map 関数が使えます。
次のような ids という整数の配列の要素を、カンマ区切りでつなげた文字列を生成するには次のようにできます。
let ids = [15, 6, 7, 12, 8, 1]
let idsString = ids.map { String($0) }
let csv = idsString.joined(separator: ",")
print(csv)
二行目で map 関数を使って、要素を文字列に変換した配列を生成し、idsString に代入しています。
生成した文字列の配列から joined 関数を使ってカンマ区切りの文字列を生成しています。
実行結果は次のようになります。
15,6,7,12,8,1
Swift でオブジェクトの配列からプロパティのカンマ区切りの文字列を生成する
最後に、Swift でオブジェクトの配列からプロパティのカンマ区切りの文字列を生成してみます。
次のような Student 構造体の配列の要素を、firstName,lastName,age のようにカンマ区切りの文字列に変換するには次のようにできます。
struct Student {
var lastName: String
var firstName: String
var age: Int
}
let students = [
Student(lastName: "Tanaka", firstName: "Yuka", age: 10),
Student(lastName: "Suzuki", firstName: "Hiro", age: 9),
Student(lastName: "Sato", firstName: "Kota", age: 8),
Student(lastName: "Yamada", firstName: "Rio", age: 10),
Student(lastName: "Tanaka", firstName: "Nana", age: 11)
]
let studentCSV = students.map { "\($0.firstName),\($0.lastName),\($0.age)" }
let csv = studentCSV.joined(separator: "\n")
print(csv)
15 行目で map 関数を使って、firstName,lastName,age の文字列を要素に持つ配列 studentCSV を生成しています。
それを、16 行目で joined 関数の separator に改行文字の "\n" を指定してつなげています。
実行結果は次のようになります。
Yuka,Tanaka,10
Hiro,Suzuki,9
Kota,Sato,8
Rio,Yamada,10
Nana,Tanaka,11
以上、Swift で配列からカンマ区切りの文字列を生成する方法についてご説明しました。