0

lastIndexOfでjavacontainsを使用することは可能ですか?

ファイルからいくつかの情報を取得しているので、最後に発生した情報を取得する必要があります。

ファイルは次のようになります

17,560.0
17,583.0
17,606.0

そして、私はこのようなものを使用しています。

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

ただし、正確に17を検索するため機能せず、それ以上はかかりません。これを回避する方法はありますか?

4

2 に答える 2

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で開始および終了することに注意してください。0List

于 2012-10-20T11:44:32.173 に答える
1

いいえ。そのような種類のを取得するには、コレクションをループする必要がありますlastIndexOf

何かのようなもの:

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

次に、。liで始まる行で最後のインデックスの値を取得します17。の場合、で始まる値liが見つかりませんでした。-117

于 2012-10-20T11:41:49.623 に答える