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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 何竹冬 于 2013-1-4 01:04 编辑

请多多指教,自己写的查找指定子串在字符串中出现次数
  1. import java.util.*;
  2. public class GetSubStrCount
  3. {
  4. //获得指定子串key在字符串str中出现的次数
  5. public static int getCount(String str,String key)
  6. {
  7. int count=0;//计数器,计算key出现的次数
  8. int shift=key.length(); //指针偏移位
  9. int pos=0;//指针位置,初始为0

  10. //只要指针位置到字符串结尾长度不小于key的长度shift就继续循环
  11. while(pos<=str.length()-shift)
  12. {
  13. String temp=str.substring(pos,pos+shift);
  14. if(key.equals(temp))
  15. {
  16. count++;
  17. pos+=shift;
  18. continue;
  19. }
  20. pos++;
  21. }
  22. if(count==0)
  23. System.out.println("没找到!");
  24. return count;
  25. }

  26. public static void main(String[] args)
  27. {
  28. System.out.println("请输入一个字符串和要查找的子串");
  29. Scanner scan=new Scanner(System.in);
  30. String str=scan.next();
  31. String key=scan.next();
  32. int count=getCount(str,key);
  33. System.out.println("子串出现的次数为:"+count);
  34. }

  35. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 神马都是浮云

查看全部评分

1 个回复

倒序浏览
本帖最后由 刘文超 于 2013-1-4 09:42 编辑

lz你好,看了你用写的程序,我学习了。
你用的是String.subString()函数。
我用的是String.indexOf()也写了一个,还望大家指点。。。
  1. package org.qyx.online;

  2. import java.util.*;

  3. public class CountOfSubStr {
  4.         public static int getCount(String str, String key) {
  5.                 int count = 0;// 计数器,计算key出现的次数
  6.                 int i=0;//下标
  7.                 while((i=str.indexOf(key,i ))!=-1){
  8.                         count++;
  9.                         i++;//找到之后下标要向后移动以为哦、、不然还从之前位置查找
  10.                 }
  11.                 return count;
  12.         }

  13.         public static void main(String[] args) {
  14.                 System.out.println("请输入一个字符串和要查找的子串");
  15.                 Scanner scan = new Scanner(System.in);
  16.                 String str = scan.next();
  17.                 String key = scan.next();
  18.                 int count = getCount(str, key);
  19.                 System.out.println("子串出现的次数为:" + count);
  20.         }

  21. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马