package day15;
/**
* @author QITM
* @date 2020/5/15 21:31
* @描述
* 2.一个子串在整串中出现的次数
* weqerweqtywequiweqopweq
* 思路:
* 1.要找的子串是否存在,如果存在获取出现的位置,这个可以使用index完成
* 2.如果找到了。那么就记录出现的位置并在剩余的字符串中继续查找该子串
* 而剩余字符串的起始是出现位置+子串的长度
* 3.以此类推,通过循环查找,如果找不到就是-1.并对每次找到用计数器记录
*
*/
public class StringTest_2 {
public static void main(String[] args) {
String str = "weqerweqtywequiweqopweq";
String key = "weq";
int count = getKeyStringCount(str, key);
int count2 = getKeyStringCount2(str, key);
System.out.println("count"+count2);
}
private static int getKeyStringCount2(String str, String key) {
// 1.定义计数器
int count = 0;
// 2.定义变量记录可以出险的位置
int index = 0;
while ((index = str.indexOf(key, index)) != -1) {
index= index + key.length() + 1;
count++;
}
return count;
}
/**
* 获取子串在整串出现的次数
* @param str
* @param key
* @return
*/
private static int getKeyStringCount(String str, String key) {
// 1.定义计数器
int count = 0;
// 2.定义变量记录可以出险的位置
int index = 0;
System.out.println(str.indexOf(key));
while ((index = str.indexOf(key)) != -1) {
str = str.substring(index + key.length());
count++;
}
return count;
}
}