など。タスクはのコレクションとして3つの連続ブロックが含まれています注文/番コレクション(マップ、配列または何でも)には、このファイルを解析することであるファイルをScalaの連続した非空行ブロックに分割する方法は?
aaa
bbb
ccc
dd dd
eee
fff
gg
hhhhh
:私たちは、以下の内容のファイルを持っています文字列。
アルゴリズム的なJava風味の方法はかなりわかりやすいようですが、誰かが機能的なScala-idiomaticソリューションを提案できれば素晴らしいかもしれません。任意の区切り文字(|
)と別々のブロックにグループ化することで
としてかなりきちんとしています合理的に大きなファイルで多くの望ましくない問題が発生します。そして、メモリ内のすべてのファイルを読み込みたい場合は、 'mkString'を実行する必要はありません。各要素で' isEmpty'チェックを使用するだけでリストを分割できます。あなたは記憶に結果を残していますが、とにかくそれは問題にならないでしょう。しかし、もしそれらの連続したブロックをストリーミングしたいなら、そのすべてをメモリに読み込まないようにすべきです。 –