本帖最后由 段光宇 于 2013-11-16 16:48 编辑
你没有考虑到查询中的字符串变化问题,我是这样解决的,子字符串出现一次,记录一次,接着把父串相应的位数截掉,生成新的父串,再进行查询。- package com.itheima;
- /*
- 要求:获取一个字符串A在另一个字符串B中出现的次数
- 思路; 1,用indexOf(String,fromIndex)查找a字符串中是否包含子串。
- 2,接下来从b.length+fromIndex处开始查找。
- 3,定义一个计数器,用来计算b在a中出现的次数。
- */
- class Number1
- {
- public static void method(String a,String b)
- {
- int c=0,sum=0;
- c=a.indexOf(b);//索引
- while(c>=0){//索引大于等于0时,表明b出现一次
- sum++;//记录出现一次
- if(c+b.length()<a.length()){
- a=a.substring(c+b.length(), a.length());//把查询过的长度截掉,生成新的串,继续查。
- c=a.indexOf(b);
- }
- }
- System.out.print(sum);
- }
- }
- class DemoNumber
- {
- public static void main(String[] args)
- {
- String a="godonlyhelpthosewhohelpthemselves";
- String b="el";
- Number1.method(a,b);
- }
- }
复制代码 |