#blognavi
Scalaでファイル読み込み→リスト→正規表現でフィルタリングというのをやってみる。
とりあえず、リストにして処理したい。perlでファイルを一行ごとに配列に入れるイメージ。
import scala.io._
object FileRead {
def main(args: Array[String]) {
val source = Source.fromFile("test.txt", "UTF-8")
try {
val lines = source.getLines()
val line_list = lines.toList
// filter
val pattern = """a.*"""
val extract_list = line_list.filter { _.matches(pattern) }
println("-----------")
extract_list.foreach { l => println(l) }
} finally {
// close
source.close()
}
}
}
perlだと配列中のマッチング→新しい配列というのがやりにくかったが、
専用のメソッドがあるので、一発でOK。あら便利。
ポイントは、getLinesはIteratorで返ってくるので、toListで配列に変換することと、
matchesメソッドに渡す正規表現は.rをつけないこと。
カテゴリ: [
日記] - &trackback() - 2013年12月11日 22:08:17
#blognavi
最終更新:2013年12月14日 21:27