第一章Strings(三):文字列の分割


Problem
CSVファイルからカンマで区切られた文字列や縦線で区切られた文字列を取得するなど、1つの文字列を区切り記号に基づいて複数の部分に分割します.
Solution
文字列を区切るには、文字列のsplitメソッドを使用します.
scala> "hello world".split(" ")
res9: Array[String] = Array(hello, world)

文字列のsplitメソッドはArrayを返し、foreachメソッドを使用してこのArrayを巡回することができます.
scala> "hello world".split(" ").foreach(println)
hello
world

Discussion
文字列区切りの区切り方法は、単純な文字でも正規表現でも使用できます.たとえばCSVファイルを処理するときは、簡単な文字「カンマ」を使う必要があります.
scala> val csv = "eggs, milk, butter, Coco Puffs"
csv: String = eggs, milk, butter, Coco Puffs

scala> val ss = csv.split(",")
ss: Array[String] = Array(eggs, " milk", " butter", " Coco Puffs")

次に、集合mapメソッドを使用して、解析された文字列をtrim操作できます.
scala> val tss = csv.split(",").map(_.trim)
tss: Array[String] = Array(eggs, milk, butter, Coco Puffs)

正規表現を使用して文字列を処理することもできます.
scala> "hello world, this is Al".split("\\s+")
res11: Array[String] = Array(hello, world,, this, is, Al)