0

重複の可能性:
Java の文字列で部分文字列の n 番目の出現を見つけますか?

文字列で特定の一致を取得する方法はありますか?

持っている場合、 の2 番目の(または特定の) インスタンスを取得するためString test = "this is a long test which is a test of a test";に使用できますか?Matchertest

使えると思っMatcher.find(x)たのですが、あまりうまくいかないようです...

4

3 に答える 3

3

試す

int firstIndex = string.indexOf("test");
if (firstIndex >= 0) {
    int secondIndex = string.indexOf("test", firstIndex+1);
}

また、n 番目のオカレンスが必要な場合は、そのループを作成できます。

int nthIndex = -1;
for (int i=0; i<n; i++ ) {
    nthIndex = string.indexOf("test", nthIndex +1);
    if (nthIndex < 0) {
        break;
    }
}

これにより、nthIndex、または見つからない場合は -1 が得られます。

于 2013-01-16T11:06:43.453 に答える
1

私はこの機能が仕事をすることができると思います

int find(String s, String pattern, int occurence) {
    Matcher m = Pattern.compile(pattern).matcher(s);
    for (int i = 1; m.find(); i++) {
        if (i == occurence) {
            return m.start();
        }
    }
    throw new RuntimeException();
}
于 2013-01-16T11:12:57.513 に答える
0

indexOfメソッドを使用してこれを行うことができます。

    String string;
    int one = string.indexOf(strToBeSearched);     
    int two = string.indexOf(strToBeSearched, one+1);

さらに、oneis >= 0 かどうかを確認する必要があります (strToBeSearched文字列内に存在しない場合は、 indexOf-1 を返します) 。

于 2013-01-16T11:06:50.770 に答える