A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© Synaric 中级黑马   /  2015-10-5 11:07  /  384 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /*
  2. *需求:获取一个字符串在另一个字符串中出现的次数
  3. *思路:1、从起始位置开始寻找子串
  4. *     2、若找到,从子串最后一个位置之后,继续寻找。每次找到,用一个计数器自增
  5. *     3、若找不到,则返回计数器
  6. */
  7. public class StringCount {
  8.         /**
  9.          * 在字符串string中统计指定子串strToCount出现的次数
  10.          * @param string 需要统计的字符串
  11.          * @param strToCount 被统计的子串
  12.          * @return 子串计数
  13.          */
  14.         static int count(String string, String strToCount){
  15.                 int count = 0;        //计数器
  16.                 int index = 0;        //表示寻找范围的索引
  17.                
  18.                 //若找到子串,则继续
  19.                 while((index = string.indexOf(strToCount, index)) != -1){
  20.                         index = index + strToCount.length();        //从找到位置的后一个位置开始继续寻找
  21.                         ++count;
  22.                 }
  23.                
  24.                 return count;
  25.         }
  26.        
  27.         public static void main(String[] args) {
  28.                 String str = "abc def abdef acd ab";
  29.                 System.out.println("string = " + str);
  30.                 System.out.println(count(str, "ab"));
  31.         }
  32. }
复制代码


1 个回复

倒序浏览
其实还可以用模式匹配做的!{:3_46:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马