黑马程序员技术交流社区

标题: 获取字符串在整个字符串中出现的次数 [打印本页]

作者: tanzhiqiu    时间: 2013-7-23 04:48
标题: 获取字符串在整个字符串中出现的次数
本帖最后由 杨兴庭 于 2013-7-23 16:51 编辑

获取itcast字符串在整个字符串中出现的次数.字符串"gzitcastabcgzabcitcastabcjavaabcandroiditcast"
class Test4
{
        public static void main(String[] args)
        {
                String str = "gzitcastabcgzabcitcastabcjavaabcandroiditcast";
                sop("count="+getSubCount_2(str,"itcast"));
        }

public static int getSubCount_2(String str,String key)
        {
                int count = 0;
                int index = 0;

                while((index= str.indexOf(key,index))!=-1)
                {
                        sop("index="+index);
                        index = index + key.length();

                        count++;
                }
                return count;
        }
        public static void sop(String str)
        {
                System.out.println(str);
        }
}

作者: chensc    时间: 2013-7-23 05:29
学习学习!
作者: 周骑骏    时间: 2013-7-23 07:53
public static void main(String[] args) {

                /*
                 * 需求3:子串在整串中出现的次数。"nbadfnbaghjnbaklnba"
                 *
                 * 思路:
                 * 1,需要计数。
                 * 2,找到一个nba就计数。
                 * 3,咋找?那就是字符串中查找字符串,字符串中怎么找应该字符串自己很清楚。
                 * 所以找String类。
                 * 4,如果有这个方法,每找一次需要计数,需要找n次。循环完成。
                 *
                 * 步骤;
                 * 1,定义变量,计数。
                 * 2,需要循环,循环条件是,找到了就继续循环,没有找到就停。
                 * int indexOf(String)
                 * 3,循环内对计数器自增。
                 */
               
                String str ="qqnbadfnbaghjnbaknbalnba";
                String key = "nba";
               
                int count = getKeyCount(str,key);
                System.out.println("count="+count);
               
        }

        public static int getKeyCount(String str, String key) {
               
                //1,定义变量计数。
                int count = 0;
                //2,定义变量,记录每次找到的角标。
                int index = 0;
                //2,循环。条件是indexOf查找的方法返回的结果不是-1.而且要明确下次查找的位置。indexOf(String,fromIndex);
                while((index = str.indexOf(key,index))!=-1){
                       
                        count++;
                        //每找完一次,都要确定下次要找的起始位置。上次位置+key的长度。
                        index += key.length();
                       
                }
                return count;
        }





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