cope函数是把string对象字符串去掉空格,然后返回string对象
str是输入的字符串对象//计算每个字母出现的次数

String str1=cope(str);
int n=1;
do{
//从字符串的第二个数开始比较,计算地一个字符出现的次数
for(int j=1;j<str1.length();j++){
if(str1.charAt(j)==str1.charAt(0))
n++;
}
//将统计过的字母全部转化为空格
str1=str1.replace(str1.charAt(0),' ');
//输出统计字母出现的总次数
            System.out.println("字母"+str1.charAt(0)+"的个数为:"+n);
//调用cope函数将str1字符串空格去掉
str1=cope(str1);
               //n重置为1
                n=1;
}while(str1.length()!=0);

解决方案 »

  1.   

    本人也是菜鸟,正在培训中,答的不好忘见谅--首先你的cope方法应该贴上的啊,
    你能确定你的cope方法没问题?
    我自己写了个 public static void main(String[] args) {
    String str = " asd tra uyda  ";
    String str1=cope(str);
     int n=1;
     do{
    //从字符串的第二个数开始比较,计算地一个字符出现的次数
    for(int j=1;j<str1.length();j++){
     if(str1.charAt(j)==str1.charAt(0))
     n++; 
    }
     //将统计过的字母全部转化为空格
    str1=str1.replace(str1.charAt(0),' ');
     //输出统计字母出现的总次数
       System.out.println("字母"+str1.charAt(0)+"的个数为:"+n); 
    //调用cope函数将str1字符串空格去掉
    str1=cope(str1);
       //n重置为1
       n=1;
     }while(str1.length()!=0);
    }
    public static String cope(String str){
    String s = "";
    String[] ss = str.split(" ");
    for(int i = 0;i < ss.length;i++){
     s = s.concat(ss[i]);  
    }
    return s;
    }
    }
    还有
    str1=str1.replace(str1.charAt(0),' ');
     //输出统计字母出现的总次数
       System.out.println("字母"+str1.charAt(0)+"的个数为:"+n); 
    这两行应该换下位置,不然字母显示不出的,全是空格。
      

  2.   

    楼上说的不错,多半你cope方法有问题
      

  3.   

    do{}while(str1.length()!=0);很明显的错误了
    str1.length()!=0的话,就一直循环了
      

  4.   


    谢谢,已经解决了,我的cope函数的确有问题,字符数组建立string对象时我 不注意大小,导致string对象的length一直是不变的,后面的循环就有严重后果的问题
      

  5.   

    不是这里的问题,如果cope函数没问题的话,最后一次处理后的string为空,就会跳出循环
    还是感谢,我最后还是加上了&&str1.charAt(0),如果cope没每次缩减空间的话,避免出现第一个为空格,然后一直循环下去的悲剧