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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zjqlovelyy 中级黑马   /  2013-1-1 23:45  /  1578 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  1. /*我觉得这个题目可以用KMP算法或者简单字符串匹配来做
  2.         下面的index = index +key.length();好像没有考虑到如果找到第一个子串的位置,加以后又是key串
  3.         例如 str=aaaa  key =aa  第一个位置是0,然后偏移一个位置后一样是key串
  4. */
  5. class StringDemo1
  6. {

  7.         public static void main(String[] args)
  8.         {
  9.                 String str = "aaaaa";
  10.                 String key = "aa";
  11.                 System.out.println(getSubCount_2(str,key));
  12.         }
  13.         public static int getSubCount_2(String str,String key)
  14.         {
  15.                 int count = 0;
  16.                 int index = 0;

  17.                 while((index = str.indexOf(key,index))!=-1)
  18.                 {
  19.                         index = index + key.length();//我觉得应该为index= index+1;
  20.                         count++;                                               
  21.                 }
  22.                 return count;
  23.         }
  24. }
复制代码

未命名.jpg (7.95 KB, 下载次数: 41)

未命名.jpg

未命名.jpg (7.11 KB, 下载次数: 42)

未命名.jpg

评分

参与人数 1技术分 +1 收起 理由
崔政 + 1 神马都是浮云

查看全部评分

4 个回复

倒序浏览
将上面我说的改为index = index+1;后的结果为4

未命名.jpg (7.72 KB, 下载次数: 38)

未命名.jpg
回复 使用道具 举报
和我想一起了、
我也觉得这样更完整一些、
lz方法不错,学习中...
  1.         public static int getSubCount_2(String str,String key)
  2.         {
  3.                 int count = 0;
  4.                 int index = 0;
  5.                 while((index = str.indexOf(key,index))!=-1)
  6.                 {
  7.                         index = index + key.length();//我觉得应该为index= index+1;
  8.                         count++;                                                
  9.                 }
  10.                 return count;
  11.         }

复制代码
回复 使用道具 举报
刘文超 发表于 2013-1-1 23:58
和我想一起了、
我也觉得这样更完整一些、
lz方法不错,学习中...

我也刚刚开始学习JAVA几天:)一起加油
回复 使用道具 举报
问题已解决
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马