统计大串中小串出现的次数

/**
 * @author:樊
 * @Data: 2022/7/20
 * @Time: 15:02
 */

/*
* 统计大串中小串出现的次数
 *
 * 举例:
 *      在字符串"woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun"
 * 结果:
 *      java出现的次数 5次
 *
 *  分析:
 *      前提,我们已经直到了大串,小字符串“java”
 *
 *      1.定义一个统计变量,初始值为0
 *      2.现在大串中查找第一次小串出现的位置
 *              a.索引为-1,说明不存在了,就返回统计变量
 *              b.索引不是-1,说明存在,统计变量++
 *       3.把刚才的索引+小串的长度作为开始位置截取上一次的大串,返回一个新的字符串,并把该字符串的值重新赋给大串
 *       4.返回到第步
 *
 *
 *  解析:第2步:
 *  s1="woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun"
 *  s2="wozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun"
 *  s3="wozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun"
 *  s4="wozhendehenaijavaxinbuxinwoaijavagun"
 *  s5="xinbuxinwoaijavagun"
 *  s6="gun"
 */
package test3;

public class Test1 {

    public static void main(String[] args) {


        //定义一个大的字符串
        String maxString ="woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun";

        //定义查找的小串
        String minString ="java";


        //写功能实现
        int count =getCount(maxString,minString);
        System.out.println("java在大串中出现的:"+count+"次");

    }
    /*
     * 两个明确的参数:
     *   maxString:大串
     *   minString:小串
     * 返回值: int  出现的次数
     * */
    private static int getCount(String maxString, String minString) {

        //定义统计变量 ,初始值为0
        int count =0;

        //先在大串中查找一次小串出现的位置
        int index =maxString.indexOf(minString);

        //索引不是-1,说明存在。统计变量++

        while (index!=-1){


            count++;
            //把刚才的索引+小串的长度作为开始位置截取上一次的大串,返回一个新的字符串,并把该字符串的值重新赋值给大串
            int startIndex= index+minString.length();
            maxString =maxString.substring(startIndex);

            //继续查找
            index =maxString.indexOf(minString);
        }
        return count;
    }


}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值