区切りファイルに変換する必要があるテキスト ファイル ダンプがあります。このファイルには、次のようにフォーマットされた一連の「レコード」(適切な言葉がないため) が含まれています。
User: abc123
Date: 7/3/12
Subject: the foo is bar
Project: 123456
Problem: foo bar in multiple lines of text
Resolution: foo un-barred in multiple lines of text
User: abc123
Date: 7/3/12
Subject: the foo is bar
Project: 234567
Problem: foo bar in multiple lines of text
which may include <newline> and
extend to multiple lines of text
Resolution: foo un-barred in multiple lines of text
...
現在、Java では、StringBuffer を使用してこのファイルを 1 行ずつ読み取り、一連のif(inputLine.toLowerCase().startsWith("user:"))
ロジックに基づいて行を個々のフィールドに解析し、最終的な区切り行をテキスト ファイルに出力しています。
ただし、フィールドProblem
とフィールドResolution
は自由形式で、複数行にすることもできます。2 つの文字列Problem:
を作成するようなことをしようとしています。Resolution:
Resolution:
Form:
私はすでにこのリンクとこのリンクを見てきましたが、これはこれを行う適切な方法である可能性があることを示唆してStringBuilder
います...しかし、ロジックを構築する方法がよくわかりません。
編集: 私は行ごとに読んでいるので、コーディング方法に頭を悩ませています
<pseudocode>
If the line starts with "Problem" extract the charactes after "Problem" else
if the PRIOR line starts with "problem" and the current line doesnt start with "resolution" then append characters in line to prior line
etc.
</pseudocode>
しかし、「問題...?」という 3 行目があれば、それを機能させる方法を視覚化することはできません。
希望する結果を達成するためのアイデアや代替方法はありますか?