データベースにインポートするためにスクラブしようとしているフラットファイルがあります。レイアウトは矛盾していますが、常にフィールド名(可変長テキストですが、常に9ワードまたはフレーズの1つ)とそれに続くフリーフォームテキストフィールド(最大1024バイトの可変長)で構成されます。私は、1024バイトのフィールドを抽出し、フィールド名の列にそれらを配置する必要があります。変数に複数のStringメソッドを使用する適切な方法は何ですか?
入力ファイル: - :各ラインを読む
foo-01 bunches of data
foo bar01 more bunches of data including a bunch of notes
foo-01 lots of data lives in this field
foo18 monday notes
...etc.
出力ファイル区切り、スペースは
foo-01;foo bar 01;foo18 (<-- header row)
bunches of data; more bunches of data including a bunch of notes; ;
lots of data lives in this field; ; notes
を整えた私の戦略はこれです。行が9つのフィールド名のうちの1つで始まる場合は、部分文字列(フィールド名の後の最初の文字から行末の最後の文字まで)を、適切な列の位置にあるdelimintedフラットファイルに書き込みます。
このコードは、
if(inputLine.startsWith("foo-01"))
{
String lineVal = inputLine.trim();
int lVLen = lineVal.length();
String outVal = lineVal.substring(17,lVLen);
String outValTrim = outVal.trim();
System.out.println(evalVal+" "+inputLine+" "+outValTrim);
}
else
...etc...
を動作しますが、問題を提起します。
考えてみましょう:
String outValTrim = inputLine.trim().substring(17,inputLine.trim().length()).trim();
を私が使用できるメソッドの最大数は何ですか?例:
foo = Stringmethod1.Stringmethod2.StringMethod3()
ステートメントのメソッドの順序の規則はありますか?
1つのステートメントでメソッドを組み合わせるベストプラクティスは何ですか?私は 人間が読めることが少ないと感じ、効率についてはわかりません。
Peterはあなたの直接の質問にうまく答えました。さて、splitコマンドを使用して、データフィールドを読みやすくすることができます。例えば。文字列headerAndData [] = inputLine.trim()。split( ""、1); – phatfingers