获取一个字符串在另一个字符串中出现的次数
我下海创业啦,从事个人网络创业领域,有兴趣伙伴可以了解一下:高羽网创博客 www.gaoyuip.com
- 思路:比较数组和被比较数组各设立一个循环,比较数组作为内循环,用比较数组的首字符进行判断,true:开始遍历判断两字符串的对应位,false:外层循环递进,开始下一次判断
- 注意点:
- 单个字符和多个字符情况;
- 相同的匹配字符重匹配情况;如"11"匹配数组内容"111111",正确应该只有三次
获取一个字符串在另一个字符串中出现的次数。 比如:获取“ ab”在 “abkkcadkabkebfkabkskab” 中出现的次数
public int getCount(String mianStr,Strin subStr){
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+"次");
}
}
调用String方法的方式
public int getCount(String mainStr,String subStr){
int mainLength = mainStr.length();
int subLength = subStr.length();
int count = 0;//记录出现次数
int index = 0;
if(mainLength >= subLength){
// 方式一:
// while((index = mianStr.indexOf(subStr)) != -1 ) {//获取字符串subStr首次出现在mainStr的脚标
// count++;
// mianStr = mianStr.substring(index + subLength);//获取未比较的部分,赋值给被比较数组
// }
// 方式二:改进效率
while((index = mainStr.indexOf(subStr,index)) != -1 ){
count++;
index += subLength;
}
return count;
}
return 0;
}
作者: "无问西东"
出处:https://www.cnblogs.com/csyh/p/12272671.html
版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。
分类:
Java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!