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

在大串中查找小串出现的次数,老师讲到的方法如下:
  1. private static void method1() {
  2.     String max = "woaiheima, buguanheimabaima, nengzhaodaogongzuojiushihaoma";
  3.     String min = "heima";
  4.     int count = 0;                 // 统计小串在大串中的次数,保存到变量count
  5.     int index = 0 ;                // 查找到的位置
  6.     while((index=max.indexOf(min)) != -1){   // (index=max.indexOf(min) 如果不是-1
  7.         count++;                // 统计一次
  8.         max = max.substring(index+min.length());  // 截取余下的字符串,继续查找
  9.     }
  10.     System.out.println(count);
  11.         }
复制代码
我自己想到的方法:
  1. private static void method2() {
  2.     String max = "woaiheima, buguanheimabaima, nengzhaodaogongzuojiushihaoma";
  3.     String min = "heima";
  4.     int count = 0;
  5.     int index = -5;        // index+min.length()作为下一次查找的起始位置。  
  6.     while ((index = max.indexOf(min, index+min.length())) != -1){
  7.         count++;
  8.     }
  9.     System.out.println(count);
  10.         }
复制代码


老师的方法是截取余下的字符串,继续查找。而我的方法是从余下的字符位置继续查找。





2 个回复

倒序浏览
嗯  开拓了思路,这样不用生成新的子串,效率应该更高一些
回复 使用道具 举报
学习....
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马