包含lastIndexOf?

时间:2012-10-20 11:36:48

标签: java list indexing

是否可以使用带有lastIndexOf的java包含?

我从文件中获取一些信息,并且需要获取最后一次出现的信息。

文件看起来像这样

17,560.0
17,583.0
17,606.0

我正在使用这样的东西。

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

然而它不会工作,因为它正好寻找17,并且不会再采取任何行动。 有什么方法吗?

2 个答案:

答案 0 :(得分: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索引从零开始。

答案 1 :(得分:1)

没有。您需要遍历集合才能获得lastIndexOf

类似的东西:

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

然后,您将获得最后一个索引的li值,其中一行以17开头。如果li-1,则找不到以17开头的值。