统计一个字符串在另一个字符串中出现了多少次,并记录位置

定义了两个字符串,统计一个字符串在另一个字符串中出现了多少次,并记录出现的位置

思路:采用字符串的indexOf方法。大串indexOf子串,找到出现的位置,然后从该位置截取大串,继续做比较。同时用原来大串的长度减去子串的长度,就能得到出现的位置了。代码如下:

private static void find() {
String str = "ilovejavajavacdejavailha123java34javali3java@#@R#FDSFAFDAjavai23o2fjai23javii2o3java";
String baseStr = "ilovejavajavacdejavailha123java34javali3java@#@R#FDSFAFDAjavai23o2fjai23javii2o3java";
String sToFind = "java";

List<Integer> list = new ArrayList<>();
if(str.contains(sToFind)) {
while(true) {
int indexOf = str.indexOf(sToFind);
if(indexOf != -1) {
str = str.substring(indexOf+sToFind.length());
int key = baseStr.length() - str.length() - sToFind.length();
list.add(key);
}else {
break;
}
}
}
System.out.println(list);
}

 

测试结果如下,看上去是没有什么问题的:

 

posted @ 2019-04-25 22:43  xrzy  阅读(318)  评论(0编辑  收藏  举报