計算字串重複元素的下標位置
阿新 • • 發佈:2020-12-21
package com.xiangxue.jack.pushpull;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test11 {
public static void main(String[] args) {
String str = "1,2,3,4,1,2,4,2";
String modelStr1 = "1";
String modelStr2 = "2";
//求第2次出現的1
System.out.println("modelStr1==" + getFromIndex(str, modelStr1, 2));
//求第2次出現的2
System.out.println("modelStr2==" + getFromIndex(str, modelStr2, 2));
//求第3次出現的2
System.out.println("modelStr2==" + getFromIndex (str, modelStr2, 3));
}
/**
* 計算重複元素第 n個的下標
* @param str 原字串
* @param modelStr 子字串
* @param count 需要計算出現的第幾次
* @return
*/
public static int getFromIndex(String str, String modelStr, Integer count) {
//對子字串進行匹配
Matcher slashMatcher = Pattern.compile (modelStr).matcher(str);
int index = 0;
//matcher.find(),嘗試查詢與該模式匹配的輸入序列的下一個子序列
while(slashMatcher.find()) {
index++;
//當modelStr字元第count次出現的位置
if(index == count){
break;
}
}
//matcher.start(),返回以前匹配的初始索引。
return slashMatcher.start();
}
}
執行結果: