2017-05-26 31 views
0

的線我得到讀取文件的目標下一個代碼一個特定索引的字符串,並打印中的某一行的第三個字符串,該文件是這樣的:獲得出現在名單<String>

Reforma_Protestante - ABSTRACCAO|ACONTECIMENTO - IDEIA|EFEMERIDE 
Europa - LOCAL - HUMANO 
Cativeiro_Babilónica_da_igreja - ACONTECIMENTO - EFEMERIDE 
Avignon - ACONTECIMENTO - EVENTO 

我得到的代碼只打印文本行:

List<String> lines = Files.readAllLines(Paths.get("file.txt")); 
... 
for (int xi=0;xi < lines.size();xi++) 
{ 
    if(lines.get(xi).contains(tt[2])) 
    { 
     System.out.println(lines.indexOf(lines)); 
     com+= tt[0]+"\t"+tt[1]+"\t"+tt[2]+"\t"+"LINES.INDEXOF(2)"+"\t"+"LINES.INDEXOF(4)"+"\t"+tt[5]+"\t"+dt.get(tt[6])+"\n"; 
     lines.remove(xi); 
    } 
} 
... 

我想在LINES.INDEXOF(2)本上的文件行(XI)和指數2個字的地方,所以它這種情況下,第一個應該是ABSTRA CCAO | ACONTECIMENTO

並在LINES.INDEXOF現場(4)我想IDEIA | EFEMERIDE

我試過lines.get(xi).indexof(2),但輸出爲-1

回答

0

你能只需從一行中獲取文本並用REGEX提取第N個單詞?

/ (?:\b\w+\b){Nth}/

這裏如何對搜索與正則表達式 https://stackoverflow.com/a/600740/6726261

+1

@Hugo感謝格式化正則表達式 –

+0

也許與地圖HashMap中的字符串,並重復鍵和值? – Break