我有一個數據文件,其中每行代表一條記錄,每條記錄可能包含一個關鍵字列表,每個關鍵字都以「+」開頭。Java:我需要將數據解析爲數組的策略
foo1 foofoo foo foo foo +key1 +key2 +key3
foo2 foo foo foofoo foo
foo3 foo foofoo foo +key1 key1 key1 +key2
有零和理論上無限數量的關鍵字之間。 關鍵字將總是以「+」開頭。 單個關鍵字可以是單個單詞或帶空格的短語。 我的確定關鍵字的策略:
我想將這些記錄讀入數組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
次數。它永遠不會獲得第二個關鍵字。
有沒有更好的方法來思考這個問題?創建此數組的更好策略?
我認爲這是更簡單的方法,但只是回答關於「但是Java知道去山姆的下一個模式實例的部分e行嗎?「,請檢查以下鏈接以查找有關匹配器對象的信息,可以做到這一點:http://docs.oracle.com/javase/tutorial/essential/regex/matcher.html – JTMon 2012-08-08 12:27:52
@JTMon - 感謝鏈接!好東西! – dwwilson66 2012-08-08 12:33:47
@JTMon我已經添加了一個例子。 – assylias 2012-08-08 12:36:35