如何简单快速地计算出一个短字符串在另一个较长字符串中出现的次数?

1.引子

一般的思路是将短字符串放到长字符串中遍历判断,这种常规的思路还是比较麻烦。那么有没有比较简单直接的方式求出结果?

2.技巧

事实上还真有,只要你敢想、敢动脑筋。在做编程的人都知道一条行业基本理念:“不重复造轮子”,我们应该尽量直接使用现成的"轮子"造出多功能的“车子”。Java的系统库不是有String的split( CharSequence)方法可以以指定的符号分隔原有的字符串而形成新的字符串数组吗!这里可以直接用这个短字符串来当分隔符,其方法返回的字符串数组的长度不就跟短字符串出现的次数间有关系嘛(count比length小1)。

3.代码

  • 主要代码
 public int countOfSubstr(String srcStr,String subStr){
        int count=0;
        if(srcStr.contains(subStr)){     //只有srcStr中包含subStr时,才做以下的分隔处理,否则直接返回0;
          //防止subStr出现在srcStr的首尾位置,分别在源字符串srcStr的首尾加上空格
            String _srcStr="    "+srcStr+"   "; 
            String[] strs=_srcStr.split(subStr);
             count=strs.length-1;
           
        }else{
            System.out.println("源字符串"+srcStr+"中不存在"+subStr+"这样的子字符串");
            return 0;
        }
        
        System.out.println("子字符串"+subStr+"在"+srcStr+"中出现了"+count+"次数");
        return count;
    }
  • 辅助代码
 public static void main(String[] args)
    {
        Test1 t=new Test1();
       t.countOfSubstr("hijava  java java jahejavahejavahejava", "java");	
    }
  • 控制台输出
    在这里插入图片描述
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值