各行が単一のレコードを表すデータファイルがあり、各レコードには、それぞれの前に「+」が付いたキーワードのリストが含まれている場合があります。
foo1 foofoo foo foo foo +key1 +key2 +key3
foo2 foo foo foofoo foo
foo3 foo foofoo foo +key1 key1 key1 +key2
キーワードの数はゼロから理論的に無制限の間です。キーワードの前には常に+が付きます。個々のキーワードは、1つの単語、またはスペースを含むフレーズにすることができます。キーワードを特定するための私の戦略:
これらのレコードを配列に読み込みたいと思いString keywords[]
ます。私はlineBuffer
データを取り込むために使用しています、そしてこれが私がこれまでに持っているものです。
// PSEUDOCODE
counter = [number of occurences of + in the line];
for(int i=0;i<=counter,i++) {
Pattern p = [regex reresenting + to the next occurence of + -or- end of line];
Match pattern;
keyword[i] = Match.group(1) }
私はこれを考えすぎているかもしれませんが、Javaは同じ行のパターンの次のインスタンスに移動することを知っていますか?これらの数行のコードを見ると、私のパターンマッチャーはその行を読み取り、キーワードの最初のインスタンスを見つけて、それを配列i
に何度も書き込むようです。2番目のキーワードに到達することはありません。
これについて考えるより良い方法はありますか?このアレイを作成するためのより良い戦略は?