public class TestString {
public static void main(String[] args) {
String str = "abcabcabc" ;  //统计该字符串中出现了哪些字符,并且把每个字符出现的次数打印输出。

aaaa(str) ;

}

public static void aaaa(String str) { for (int i = 0; i < str.length(); i++) {
char c1 = str.charAt(i);
int count = 0;
for (int j = i; j < str.length(); j++) {
char c2 = str.charAt(j) ;
if (c1 == c2) {
count++;
} else {
continue;
}
}
str = str.replaceAll(String.valueOf(c1), "") ;
System.out.println(c1 + "出现了" + count + "次");
}
}
}

解决方案 »

  1.   

    你debug一次就可以找到答案了..你这样写好像不太好
      

  2.   

    直接调用String的多个API就可以实现你的效果了。
      

  3.   

    LZ这样写不行str = str.replaceAll(String.valueOf(c1), "") ;当你把c1替换为""时,字符串长度会减1,这样各个字符的索引也会变.
    //方法1:
    public class TestString {
    public static void main(String[] args) {
    String str = "abcabcabc" ; //统计该字符串中出现了哪些字符,并且把每个字符出现的次数打印输出。aaaa(str) ;}public static void aaaa(String str) 
    {for (int i = 0; i < str.length(); i++) 
    {
    //////////
       i = 0;///////
    ///////////////
    char c1 = str.charAt(i);
    int count = 0;
    for (int j = i; j < str.length(); j++) 
    {
    char c2 = str.charAt(j) ;
    if (c1 == c2) {
    count++;
    } else {
    continue;
    }
    }
    str = str.replaceAll(String.valueOf(c1), "") ;
    System.out.println(c1 + "出现了" + count + "次");
         
    }}
    }
    //方法2
    public static void aaaa(String str) 
    {while(str.length()>0){
    char c1 = str.charAt(0);
    int count = 0;
    for (int j = 0; j < str.length(); j++) 
    {
    char c2 = str.charAt(j) ;
    if (c1 == c2) {
    count++;
    } else {
    continue;
    }
    }
    str = str.replaceAll(String.valueOf(c1), "") ;
    System.out.println(c1 + "出现了" + count + "次");
         
    }}
      

  4.   


    import java.util.*;
    public class CharCount 
    {
    public static void main(String[] args) 
    {
    String s = "abcabcabcaaaaff";
    Map<Character,Integer> m= new HashMap<Character,Integer>();
    for(int i=0;i<s.length();i++){
    if(!m.containsKey(s.charAt(i))){
    m.put(s.charAt(i),1);
    }else{
    int count = m.get(s.charAt(i));
    m.put(s.charAt(i),count+1);
    }
    }
    System.out.println(m);
    }
    }