黑马程序员技术交流社区

标题: 一个简单的String题目,你能发现bug么 [打印本页]

作者: nblity007    时间: 2016-8-3 21:04
标题: 一个简单的String题目,你能发现bug么
查询大字符串中,出现指定小字符串的次数。
如“hellojava,nihaojava,javazhenbang”中查询出现“java”的次数。

我的代码:

//计算在字符串S中出现子串S1的次数;
public static void getSomeNum( String s, String s1){
            int count =0;
            while(s.length ()>=s1 .length ()){
                 int i = s. indexOf( s1);
                 s = s. substring( i+ 1);
                 count++;
           }
            System. out.println (s1 +"出现了" +count +"次" );
}

//以为就这么简单的结束了么??多试两个就发现Bug了......你犯同样错误了没!

ps:问题已经解决了~下面是改进的代码:

public static void getSomeNum( String s, String s1){
            int count = 0;
            int index = -1;
            while((index = s .indexOf (s1 ))!=-1 ){
                 count++;
                 s= s. substring( index+ 1);
           }
            //或者用:while((index = s .indexOf (s1 ,index +1 ))!=-1 ){count++}
            System. out.println (s1 +"出现了" +count +"次" );
}

作者: fengjunzixian    时间: 2016-8-3 21:53
可以的。。。。。。




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