
算法题:获取一个字符串在另一个字符串中出现的次数
发布日期:2021-05-08 23:17:19
浏览次数:13
分类:博客文章
本文共 3369 字,大约阅读时间需要 11 分钟。
/* 获取一个字符串在另一个字符串中出现的次数。 比如:获取“ab”在 “abkkcadkabkebfkaabkskab” 中出现的次数 */
import org.testng.annotations.Test;/** * @author CH * @create 2021 上午 10:26 */public class StringDemo1 { /* 获取一个字符串在另一个字符串中出现的次数。 比如:获取“ab”在 “abkkcadkabkebfkaabkskab” 中出现的次数 */ /** * 获取subStr在mainStr中出现的次数 * @param mainStr * @param subStr * @return */ 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 = mainStr.indexOf(subStr)) != -1){// count++;// mainStr = mainStr.substring(index + subStr.length());// } //方式二:对方式一的改进 while((index = mainStr.indexOf(subStr,index)) != -1){//index是开始找的位置 count++; index += subLength; } return count; }else{ return 0; } } @Test public void testGetCount(){ String mainStr = "abkkcadkabkebfkaabkskab"; String subStr = "ab"; int count = getCount(mainStr, subStr); System.out.println(count); }}
附录: String 常用方法:
int length() :返回字符串的长度: return value.length
char charAt(int index): : 返回某索引处的字符return value[index] boolean isEmpty() :判断是否是空字符串:return value.length == 0 String toLowerCase() :使用默认语言环境,将 String 中的所有字符转换为小写 String toUpperCase() :使用默认语言环境,将 String 中的所有字符转换为大写 String trim(): :返回字符串的副本,忽略前导空白和尾部空白 boolean equals(Object obj): :比较字符串的内容是否相同 boolean equalsIgnoreCase(String anotherString) :与equals方法类似,忽略大小写 String concat(String str) :将指定字符串连接到此字符串的结尾。 等价于用“+” int compareTo(String anotherString): :比较两个字符串的大小 String substring(int beginIndex): :返回一个新的字符串,它是此字符串的从beginIndex开始截取到最后的一个子字符串。 String substring(int beginIndex, int endIndex) : :返回一个新字符串,它是此字符串从beginIndex开始截取到endIndex(不包含)的一个子字符串。 boolean endsWith(String suffix): :测试此字符串是否以指定的后缀结束
boolean startsWith(String prefix): :测试此字符串是否以指定的前缀开始 boolean startsWith(String prefix, int toffset): :测试此字符串从指定索引开始的子字符串是否以指定前缀开始 boolean contains(CharSequence s) :当且仅当此字符串包含指定的 char 值序列
时,返回 true int indexOf(String str): :返回指定子字符串在此字符串中第一次出现处的索引 int indexOf(String str, int fromIndex): :返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始 int lastIndexOf(String str): :返回指定子字符串在此字符串中最右边出现处的索引 int lastIndexOf(String str, int fromIndex): :返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索注:indexOf和lastIndexOf方法如果未找到都是返回-1 boolean endsWith(String suffix): :测试此字符串是否以指定的后缀结束 boolean startsWith(String prefix): :测试此字符串是否以指定的前缀开始 boolean startsWith(String prefix, int toffset): :测试此字符串从指定索引开始的子字符串是否以指定前缀开始9.1 字符串相关的类:String 常用方法2 String replace(char oldChar, char newChar): :返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。 String replace(CharSequence target, CharSequence replacement): :使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。 String replaceAll(String regex, String replacement) : : 使 用 给 定 的replacement 替换此字符串所有匹配给定的正则表达式的子字符串。 String replaceFirst(String regex, String replacement) : : 使 用 给 定 的replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。 boolean matches(String regex): :告知此字符串是否匹配给定的正则表达式。 String[] split(String regex): :根据给定正则表达式的匹配拆分此字符串。 String[] split(String regex, int limit): :根据匹配给定的正则表达式来拆分此字符串,最多不超过limit个,如果超过了,剩下的全部都放到最后一个元素中。发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月14日 10时16分03秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Go 数组&切片
2019-03-06
老Python总结的字典相关知识
2019-03-06
vue 不常见操作
2019-03-06
jQuery的事件绑定与触发 - 学习笔记
2019-03-06
Python处理接口测试的签名
2019-03-06
测试流程规范--测试报告模板
2019-03-06
Linux上TCP的几个内核参数调优
2019-03-06
记一次讲故事机器人的开发-我有故事,让机器人来读
2019-03-06
高德算法工程一体化实践和思考
2019-03-06
判断一个数是否是2的幂
2019-03-06
js 闭包(新)
2019-03-06
vscode 编辑python 如何格式化
2019-03-06
seo 回忆录百度基本概念(一)
2019-03-06
重新整理数据结构与算法(c#)—— 算法套路二分法[二十四]
2019-03-06
用ThreadLocal来优化下代码吧
2019-03-06
netcore中使用session
2019-03-06
Android 开发学习进程0.25 自定义控件
2019-03-06
多媒体文件格式全解说(下)--图片
2019-03-06
淘宝WAP版小BUG分析
2019-03-06