2012-10-20 65 views
0

是否有可能使用java包含lastIndexOf?包含lastIndexOf?

我從文件中抓取一些信息,並且需要抓取最後一次出現的信息。

的文件看起來像這樣

17,560.0 
17,583.0 
17,606.0 

,我使用這樣的事情。

System.out.println(lines.indexOf("17")); 

然而它不會工作,因爲它看起來確切地是17,並且不會再採取任何行動。 任何方法?

+1

我真的不明白你在做什麼,請你詳細說明一下嗎? – Keppil

+0

lastIndexOf返回參數中(完全)字符串的最後一個索引。沒有任何解決方法。你想要什麼?也許你想在該字符串的最後一次出現之後抓取文本(本例中爲「17」)? – Kamil

+0

如何使用lastIndexOf和contains()? lastIndexOf()返回一個整數並且contains()將一個Object作爲參數。什麼類型是「線」? – Flawyte

回答

1

不需要。您需要遍歷集合才能獲得那種lastIndexOf

喜歡的東西:

int li = -1, i=0; 
for (line : lines) { 
    if (line.startsWith("17")) { 
     li = i; 
    } 
    i++ 
} 

然後你會在最後的指數值li用得開始17線。如果li-1,則未找到以17開頭的值。

3

假設你的行在List<String> lines或類似的東西,我會對這些lines做一個反向迭代,檢查它是否以期望的值開始。例如:

for (int i = lines.size() - 1; i >= 0; i--) { 
    if (lines.get(i).startsWith("17") { 
     return lines.get(i); 
    } 
} 

注意我們在lines.size() - 1開始和結束0,因爲List指數是從零開始。

+0

忘記我的答案。我也會這樣做@mthmulders建議。 –