黑马程序员技术交流社区

标题: day12.17 实现在大串中查找小串出现的次数,我自己的方法 [打印本页]

作者: theape    时间: 2016-7-14 11:52
标题: day12.17 实现在大串中查找小串出现的次数,我自己的方法
在大串中查找小串出现的次数,老师讲到的方法如下:
  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.         }
复制代码


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






作者: longforus    时间: 2016-7-14 14:21
嗯  开拓了思路,这样不用生成新的子串,效率应该更高一些
作者: suming    时间: 2016-7-14 17:41
学习....




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2