概要 Scalaの文字列は、基本的にはjava.lang.Stringを利用している。 但し、PredefでStringOpsへの暗黙の型変換が定義されているので、StringOpsの関数も利用できる。StringOpsはStringLikeを継承している。 また、StringOpsとStringLikeは、scala.collection.immutableパッケージの中(ListとかMapがいるとこ)に入っており、StringLikeはcollectionが持つようないくつかのクラスを継承している。 そのため、collect、distinct、countなどのListなどでお馴染みの関数が利用可能だったり、foreachやforループが使えるなど、文字列に対してCollection的な扱いができるようになっている。 お陰でやたらとたくさんの関数が利用できるようになってるけど、Colle