package cn.lianxi;
public class Count {
/*
* 统计大串中小串出现的次数
* 举例:在字符串“woaijavawozhendeaijavawozhendejava”
* 结果;
* java出现了5次
*
* 分析:
* 前提知道了大串和小串
* 1.定义一个统计变量,初始化值是0;
* 2.先在大串中查找一次小串第一次出现的位置
* a.索引是-1,说明不存在了,就返回统计变量
* b.索引不是-1,说明存在,统计变量++
* 3.把刚才的索引+小串的长度作为开始位置进行截取
* 返回一个新的字符串,并把该字符串的值重新赋值给大串
* 4.回到2
* */
public static void main(String[] args) {
String maxString = "woaijavawozhenjavadeaijavawozhjavaendejava";
String minString = "java";
int count = getCount(maxString,minString);
System.out.println("子串出现的次数是:"+count);
}
public static int getCount(String maxString,String minString){
//定义一个统计变量,初始化值是0
int count = 0;
//先在大串中查找一次小串第一次出现的位置
int index = maxString.indexOf(minString);
//索引是-1,说明不存在了,就返回统计变量
while(index != -1){
count++;
//把刚才的索引+小串的长度作为开始位置进行截取
//返回一个新的字符串,并把字符串重新赋值给大串
//int startIndex = index + minString.length();
//maxString = maxString.substring(startIndex);
//以上两行代码可优化为
maxString = maxString.substring(index + minString.length());
//继续查
index = maxString.indexOf(minString);
}
return count;
}
}