- class Test2
- {
- public static int method_count2(String str,String str1)
- {
- int count=0;
- for (;str.indexOf(str1)!=-1;count++ )
- {
- str=str.substring(str.indexOf(str1)+str1.length());
- }
- return count;
- }
- public static void main(String[] args)
- {
- String str="abkkcdkkefkkskk";
- String str1="kk";
- int count=method_count2(str,str1);
- sop(count);
- }
- public static void sop(Object obj)
- {
- System.out.println(obj);
- }
- }
复制代码
我想说在最后一次遍历for循环获取str的字串的时候,str.indexOf(str1)+str1.length()是不是已经超出范围了(也就是原来是“kk”,但str.substring(2)),这样编译一样通过,我刚开始想这样活得的字串应该是空的,但同样是超出范围,将str.indexOf(str1)+str1.length()变为str.indexOf(str1)+str.length()就是超出范围。各位神帮解释下呗。 |
|