str.substring(i,i+1))
这里你要判断下
i可能大于str的长度,就会出这个错误

解决方案 »

  1.   

    问题在最后str长度为0时,执行print出错,加一个判断:
    public class StringDemo {
    public static void main(String args[]){
    String str1 ="qweasfsadgfag";
    //char[] ch = str.toCharArray();
    print(str1);
    }
    public static void print(String str){ String a = str.substring(0,1);
    int count =1;
    for(int i=1;i<str.length();i++){
    if(a.equals(str.substring(i,i+1))){
    count++;
    } }
    System.out.print(a+"("+count+")");
    str =str.replace(a,"");
    str=str.trim();
    if(str.length()!=0){
    print(str);}
    }
    }