.有一个字符串 ECALIYHWEQAEFSZC"请写程序找出其中有多少种字符,每种字符有几个并打印出来例如:A:2个,B:3个,D:4。求大神给个解答

解决方案 »

  1.   

    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Map.Entry;public class test3 { public static void main(String[] args) {
    // TODO Auto-generated method stub
    Map<Character, Integer> map=new HashMap<Character, Integer>();
    String str="ECALIYHWEQAEFSZC";
    char[]  c=str.toCharArray();
    for (char i:c) {
    if(map.containsKey(i)) {
    map.put(i, map.get(i)+1);
    }else {
    map.put(i, 1);
    }
    }
    Iterator<Entry<Character, Integer>> entries=map.entrySet().iterator();
    while(entries.hasNext()) {
    Entry<Character, Integer> entry=entries.next();
    System.out.print(entry.getKey()+":"+entry.getValue()+"\t");
    }
    }
    }
      

  2.   

    public class Test {
    public static void main(String[] args) {
    String str = "ECALIYHWEQAEFSZC";
    //声明Map类型变量,key存储字符串的每个字符,value存储字符对应的次数。
    Map<Character,Integer> chMap = new HashMap<Character,Integer>();
    int length = str.length();
    for(int i=0;i<length;i++) {
    Character ch = str.charAt(i);
    if(chMap.get(ch) == null) {
    chMap.put(ch, 1);
    }else {
    Integer count = chMap.get(ch);
    chMap.put(ch, ++count);
    }
    }
    System.out.println(chMap);//打印结果
    }
    }
    打印结果:写完之后才看了楼上的代码,看来大家的思路都差不多
      

  3.   

    使用map就是了
      

  4.   


    String str="ECALIYHWEQAEFSZC";
        char[] arr=str.toCharArray();
        Map<Character,Integer> result=new HashMap<Character,Integer>();
        for(int i=0,len=arr.length;i<len;i++){
         if(!result.containsKey(arr[i])){
         result.put(arr[i], len-str.replace(arr[i]+"","").length());
         }
        }