#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