1.首先,你那个方法中貌似缺少return语句吧,返回的应该是jishuqi
2.indexOf(String str, int fromIndex)
返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
3.while((index = s.indexOf(key,index))!=-1) 字符串s从角标index开始如果包含字符串key的话就进入循环,估计你还少了一句jishuji++;
4. index = index + key.length(),举个例子s="abcdabc",key="ab",s中一开始就出现"ab",indexOf返回的值是0,jishuqi的值加1,表明出现一次ab,我们需要继续往后搜索是否存在"ab",所以搜索开始的位置要往后移动"ab"的长度,所以index要加上一个key.length()的长度
5.这个函数的功能是返回字符串s中所含有字符串key的个数
class Test
{
public static int fangFa_2(String s,String key)
{
int jishuqi = 0;
int index = 0;
while((index = s.indexOf(key,index))!=-1)
{
index = index + key.length();//哪位大侠帮忙解释一下 这句话的作用
jishuqi++;
}
return jishuqi;
}
public static void main(String[] args)
{
String s = "abkkcdkkefkkskk";
int d = fangFa_2(s,"kk");
System.out.println(d);
}
}
|