如输入abcdad,那么得到的结果是                       a为2个                       b为1个                      c为1个                      d为2个
还有一个问题,怎么判断我输入的字符串中的字符都是不同的,如果输入相同就提示,
                                        如abfdha.                                         就提示输出 a重复要考虑效率问题

解决方案 »

  1.   

    回复第一问:import java.util.*;
    public class Test {  
        public static void main(String args[]){ 
            String s = "abcdad"; //待测试的字符串
            Map<Character, Integer> result = getCharMaps(s);
            System.out.println(result);//打印出字符串中各字符出现的次数!
            
       } 
        public static Map<Character, Integer> getCharMaps(String s) {
    Map<Character, Integer> map = new HashMap<Character, Integer>();
    for(int i = 0; i < s.length(); i++) {
    Character c = s.charAt(i);
    Integer count = map.get(c);
    map.put(c, count == null ? 1 : count + 1);
    }
    return map;

    }
       

      

  2.   

    //以下代码只能统计小写字母,且必须为小写字母String s = "abcsda";//存储字符出现的次数,下标0存储a出现的次数,1存储b出现的次数,依次类推
    int[] num = new int[26];int len = s.length();for(int i = 0;i < len;i++){
        num[s.charAt(i) - 'a']++;  
    }for(int i = 0;i < 26;i++){
       if(num[i] > 0){
          System.out.println((char)(i + 'a') +" " + num[i] + "个"); 
       }
    }
      

  3.   

    Mailbomb 的代码我看不懂啊,Java中有&apos吗?还有怎么判断我们输入的字符都是不同的啊?
      

  4.   

    &apos是单引号,论坛自动转换的
      

  5.   

    偶也来写一个,满足楼主要求的,嘿嘿,就是太长public class Test 
    {
    public static void main(String args[])
    {
    new Test().strcount("abcdeabadefgacm");
    }
    public void strcount(String str)
    {
    int len=str.length();
    int index=1;
    Strcount stc[]=new Strcount[len];
    stc[0]=new Strcount(str.charAt(0));
    for(int i=1;i<len;i++)
    {
    inner:for(int j=0;j<index;j++)
    {
    if(stc[j].ch==str.charAt(i))
    {
    stc[j].plus();
    break inner;
    }
    if(j==index-1)
    {
    stc[index++]=new Strcount(str.charAt(i));
    break inner;
    }
    }
    }
    for(int i=0;i<index;i++)
    {
    System.out.println(stc[i].ch+"   :   "+stc[i].count);
    if(stc[i].count>1)
    System.out.println(stc[i].ch+"重复");
    }
    }
    }
    class Strcount
    {
    int count;
    char ch;
    public Strcount(char ch)
    {
    count=1;
    this.ch=ch;
    }
    public void plus()
    {
    count++;
    }
    }