黑马程序员技术交流社区

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

作者: 追逐    时间: 2014-3-20 12:43
标题: 获取字符串中某个子串出现的次数
本帖最后由 追逐 于 2014-3-21 19:32 编辑

/*
3,获取一个字符串在另一个字符串中出现的次数。
        "abkkedfkkskka"

        思路:
        1,定义一个计数器
        2,获取kk第一次出现的位置。
        3,从第一次出现位置偶剩余的字符串中继续获取kk出现的位置。
                每获取一次就计数一次。
        4,当获取不到时,技术完成
*/

  1. class ChaZhaoTest
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 String s = "abkkedfkkskkakk";
  6.                 System.out.println(getSubString(s, "kk"));
  7.         }

  8.         //获取一个子字符串在字符串中出现的次数   方法一
  9.         public static int getSubString(String str, String key) //str要传入的参数字符串 key要被查找的字符串
  10.         {
  11.                 int count = 0; //计数器
  12.                 int index = 0; //记录角标位
  13.                 while((index = str.indexOf(key))!= -1) //str.indexOf(key)是查找要被查找的字符串的起始位,只要不等于-1就代表里面还有字符
  14.                 {
  15.                         count++; //记录出现的次数
  16.                         //substing获取一个从index+key.length()角标位开始的子字符串
  17.                         str = str.substring(index + key.length());
  18.                 }
  19.                 return count;
  20.         }

  21.         
  22.         //获取一个子字符串在字符串中出现的次数   方法二
  23.         public static int getSubString_1(String str, String key)
  24.         {
  25.                 int count = 0; //计数器
  26.                 int index = 0; //记录角标位
  27.                 while((index = str.indexOf(key, index)) != -1) //indexOf(key, index)key代表要被查找的字符串。index代表下一个角标位的开始角标位
  28.                 {
  29.                         index = index + key.length(); //index是要查找字符串的起始位。计算key字符串的长度。并加上查找字符串的起始位
  30.                         count++;
  31.                 }
  32.                 return count;
  33.         }

  34. }
复制代码







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