//获取一个字符串在另一个字符串中出现的次数。 比如:获取“ ab”在 “abkkcadkabkebfkabkskab” 中出现的次数
@Test
public void isCount(){
String str1 = "aa";
String str2 = "aabjkdaaaaafjksdabkjdfsdabj";
//将字符串转换成字符数组
char[] ch1 = str1.toCharArray();
char[] ch2 = str2.toCharArray();
int len1 = str1.length();
int len2 = str2.length();
int count = 0;//记录出现次数
boolean loopFlag = true;//设置一个标识,用于判断是否找到匹配字符的开关
for(int i = 0;i < len2;i++){
//用比较数组的首元素进行匹配,一旦匹配到相同的字符,开始后继的检测
if(ch1[0] == ch2[i]){
for(int j = 0,k = i;j < len1;j++,k++){
if(ch1[j] == ch2[k]){
//比较完最后一个字符元素且相同,计次器+1
if(j == len1-1){
count++;
i += len1 -1;//用于跳过已在匹配的子字符串范围内的长度,-1是为了抵消循环的递增
loopFlag = false;
}
}
else
break;//一旦发现对应位数不相等,退出检测
}
}
}
if(loopFlag){
System.out.println("没有匹配的字符串!");
}
else {
System.out.println("匹配的字符串出现次数有:"+count+"次");
}
}原文:https://www.cnblogs.com/csyh/p/12272671.html