重複の可能性:
Java の文字列で部分文字列の n 番目の出現を見つけますか?
文字列で特定の一致を取得する方法はありますか?
持っている場合、 の2 番目の(または特定の) インスタンスを取得するためString test = "this is a long test which is a test of a test";
に使用できますか?Matcher
test
使えると思っMatcher.find(x)
たのですが、あまりうまくいかないようです...
重複の可能性:
Java の文字列で部分文字列の n 番目の出現を見つけますか?
文字列で特定の一致を取得する方法はありますか?
持っている場合、 の2 番目の(または特定の) インスタンスを取得するためString test = "this is a long test which is a test of a test";
に使用できますか?Matcher
test
使えると思っMatcher.find(x)
たのですが、あまりうまくいかないようです...
試す
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 が得られます。
私はこの機能が仕事をすることができると思います
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();
}
indexOf
メソッドを使用してこれを行うことができます。
String string;
int one = string.indexOf(strToBeSearched);
int two = string.indexOf(strToBeSearched, one+1);
さらに、one
is >= 0 かどうかを確認する必要があります (strToBeSearched
文字列内に存在しない場合は、 indexOf
-1 を返します) 。