class  SchTest{  
       SchTest(){}  
       SchTest(String  str,char  ch){  
               int  count=0;  
               System.out.print("\""+ch+"\""+"出现的位置分别为:");                
               for(int  i=0;i!=-1;){            
                                 //indexOf()方法,如果找到就返回第一次找到的位置,如果找不到就返回-1  
                       i=str.indexOf(ch,i+1);  
                       if(i!=-1){  
                               count++;  
                               System.out.print(i+"  ");  
                           }  
                 }  
                   
                           if(count>0)  
                 
                                   System.out.println("\n"+ch+"共出现了"+count+"次");  
                 
                           else  
                                   System.out.println("没有在您输入的字符串中找到字符"+ch);    
         }  
       public  static  void  main(String  args[]){  
               SchTest  st=new  SchTest("abcdabcd",'a');  
       }  
}  
结果:  
"a"出现的位置分别为:4    
a共出现了1次  
问题:如果要查找的字符脚标为0的话就找不到?

解决方案 »

  1.   

    indexOf()方法本来就是返回第一个所在的位置,
    i=str.indexOf(ch,i+1);  你修改一下这句话,我想就能解决了,
      

  2.   

    class  SchTest{  
        SchTest(){}  
        SchTest(String  str,char  ch){  
                int  count=0;  
                System.out.print("\""+ch+"\""+"出现的位置分别为:");                
                for(int  i=0;i!=-1;){            
                                  //indexOf()方法,如果找到就返回第一次找到的位置,如果找不到就返回-1  
                        int j = 0;
    j = str.indexOf(ch, i + j); 
    i = j;
                        if(i!=-1){  
                             count++;  
                                System.out.print(i+"  ");  
                                i++;
                            }  
                  }  
                    
                            if(count>0)  
                  
                                    System.out.println("\n"+ch+"共出现了"+count+"次");  
                  
                            else  
                                    System.out.println("没有在您输入的字符串中找到字符"+ch);    
          }  
        public  static  void  main(String  args[]){  
                SchTest  st=new  SchTest("abcdabcda",'a');  
        }  
    }