目标
编写代码,获取一个字符串(目标字符串)在另一个字符串中出现的次数。
思路
- 定义计数器,记录字符串出现的次数。
- 获取目标字符串第一次出现的位置。
- 从第一次找到目标字符串在另一个字符串出现位置后,在剩余的字符串中继续获取目标字符串出现的位置,每获取一次计数器增加1。
- 当获取不到目标字符串出现的位置时,计数完成。
编码
public static void sp(Object obj){
System.out.println(obj);
}
public static void main(String[] args){
String str="abkkcdkkefkkskk";
sp("目标字符串\"kk\",在\""+str+"\"字符串中出现的次数为:"+getCount("kk",str)+"次");
}
// 方法一:
// int indexOf(String str):返回的是str在字符串中第一次出现的位置
public static int getCount(String target,String str){
int count=0; // 定义计数器
int index=0; // 定义角标
while((index=str.indexOf(target))!=-1){
// sp("str"+str);
str=str.substring(index+target.length()); // 截取未被查找到目标字符串的子串
count++;
}
return count;
}
// 方法二:
// int indexOf(String str,int fromIndex):从fromIndex指定位置开始,获取str在字符串中出现的位置
public static int getCount2(String target,String str){
int count=0; // 定义计数器
int index=0; // 定义角标
while((index=str.indexOf(target,index))!=-1){
// sp("index="+index);
index=index+target.length(); // 使角标值变为未被查找到目标字符串的子串开始角标值
count++;
}
return count;
}