获取一个字符串在另一个字符串中出现的次数Java

获取一个字符串在另一个字符串中出现的次数

        问题描述:有两个不同的字符串str1,str2,其中str1的长度大于等于str2的长度,返回str2在str1中出现的次数。

        看到这个问题只需去想如果在生活中遇到了该怎么处理,只要将这种想法用代码表达出来即可。

假设:
        str1 = “sdofnhidooniduadocuds”;
        str2 = “do”;

        那么很显然,这个例子中我们就是要找出"do"在 str1 中出现的次数。生活中我们会想着先用 “do” 中的 ‘d’ 在str1 中找,找到之后再看’d’的后一位是不是’o’,如果不是,就从找到’d’的下一位开始,以此类推。

        上面是生活中遇到问题的解决方法,但是String中有更好的方法来解决这个问题——indexOf(subString,startIndex),我们只要将要查找的子字符串和开始查询的下标位置传进来,就可以找到搜索目标出现的第一个位置。

下面用代码来具体解释:

	//在已知str1和str2长度的情况下,从str1中找str2出现的次数
public int getCount(String str1,String str2){
	int mainLen = str1.length();
	int subLen = str2.length();
	int count = 0;
	int index = 0;//每次找到时的下标
	if(mianLen >= subLen){
		//indexOf():找不到时默认返回-1
		while((index = str1.indexOf(str2,index)) != -1){
		//将str2在str1中出现的下标赋值给index,如果不等于-1,说明找到了
			//计数+1
			count++;
			//将下次开始寻找的第一个位置赋值为这次位置+"do" 的长度
			index += subLen;
		}
	}
	//最后不管找没找到都返回count,因为count初始化值为0
	return count;
}

可以自己写个测试类然后传两个参数测试一下:

    public void testGetCount() {
        String mainStr = "sdofnhidooniduadocuds";
        String subStr = "do";
        int count = getCount(mainStr, subStr);
        System.out.println(count);
    }

    要善于运用Java中提供的方法来解决问题,会大大缩短编程的时间,提高编程的效率。

运行结果为3

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值