本帖最后由 卡斯特隋隋隋 于 2012-4-23 14:01 编辑
学习是一件十分快乐的事情。内容仅代表个人观点,仅供参考。为了黑马努力着!
package suisuisui.day15;
/* * 求一个子串在整串中出现的次数。 * "nbaernbatynbauinbaopnba" *
* 思路:
* 1:要判断要查找的子串key是否存在于给定字符串中及出现的位置,我们用可以用indexOf这个函数来完成,
* 2:首先我们定义一个变量num作为计数器来标记key出现的次数,用index来记录key在函数中出现的位置。
* 3:当key不在给定的字符串中时indexof将返回-1,我们用这个来判断num是否++。
* 4:indexOf(String str,int fromIndex),可以从指定位置查抄字符串丙返回index,所以我们要指定formIndex的
* 值,当查找到key时,num++,并且将下次查找的起始点定位为index+key。
* 5:由于我们要记录次数,所以我们要循环判断。
* */
- public class Test1 {
- /**
- * @param args
- */
- public static void main(String[] args) {
-
- String str = "nbaernbatynbauinbaopnba";
- String key = "nba";
- System.out.println(key + "出現的次数: " + getKey(str,key));
- }
- public static int getKey(String str, String key) {
- int num = 0;//定义变量计数器标记出现的次数
- int index = 0;//初始化index值为0;
- while((index=str.indexOf(key,index))!=-1){//将查找到key返回的值付给index,丙判断是否=-1
- num++;//找到了一个,计数器加一。
- index=index+key.length(); //下一次查找从index+key处开始查找。
- if (index > str.length())//交表越界,退出循环
- break;
- }
- return num;
- }
- }
- /**
- int indexOf(int ch)
- 返回指定字符在此字符串中第一次出现处的索引。
- int indexOf(int ch, int fromIndex)
- 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
- int indexOf(String str)
- 返回指定子字符串在此字符串中第一次出现处的索引。
- int indexOf(String str, int fromIndex)
- 返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
- */
复制代码
|