本帖最后由 java2000_net 于 2008-08-05 15:37:10 编辑

解决方案 »

  1.   

    俄...判断字母扔进map为key,相同value+1..最后比较value...
      

  2.   


    public class Test {
    public static void main(String[] args) {
    String str = "dsfdsfsdfsdf";
    Map<Character,Integer> d = new HashMap<Character, Integer>();
    for(int i = 0;i<str.length();i++){
    char c = str.charAt(i);
    if(d.containsKey(c)){
    d.put(c, d.get(c)+1);
    }
    else{
    d.put(c, 1);
    }
    }
    System.out.println(d);
    }

    }
    结果:{d=4, f=4, s=4}
      

  3.   

    如果仅仅是26个字母,可以用一个数组来轻松实现,而且效率肯定比map高
      

  4.   

    给你个算法:你可以把字符串拆成数组  然后循环遍历这个数组  然后用tempString = str.replaceAll("数组里的字符",""),这样就得到了新的字符串了  然后 你就可以用原始的字符串长度减掉新生成的tempString的长度   差值最大返回那个字符就可以了
      

  5.   


    public class TheMap {
        public static void main(String[] args){
           Map<String,Integer> ma = new HashMap<String, Integer>();
           String a  = "aaabbbccddefjdfskla";
           String [] b = a.split("");
           System.out.println(Arrays.toString(b));
           int e = 0;
           for(int i = 0;i<=a.length();i++){
               String c = b[i];
               System.out.print(c+" ");
               Integer abc = ma.get(c);               
           }
           System.out.print(ma);
            
        }
    }
    不太完美,结果多了个空白的
    {f=2, =1, d=3, e=1, s=1, b=3, c=2, a=4, l=1, j=1, k=1}
      

  6.   


    public static void main(String[] args) {
    String s = "aabbccdabc";
    Map<Character,Integer> m = new HashMap<Character,Integer>();
    Integer j;
    for(int i=0;i<s.length();i++){
    j=m.put(s.charAt(i), new Integer(1));
    if(j!=null){
    m.put(s.charAt(i),new Integer(j+1));
    }
    }
    for(Character c:m.keySet()){
    System.out.println(c+"-->"+m.get(c));
    }
             }
      

  7.   

    public class Test {
        public static void main(String[] args) {
            String str = "dsfdsfsdfsdf";
            Map<Character,Integer> d = new HashMap<Character, Integer>();
            for(int i = 0;i<str.length();i++){
                char c = str.charAt(i);
                if(d.containsKey(c)){
                    d.put(c, d.get(c)+1);
                }
                else{
                    d.put(c, 1);
                }
            }
            System.out.println(d);
        }
        
    }
      

  8.   

    也可以不用map的,用一个数组,而且一次可以找到哪个出现的次数最多, public static void main(String []args) {
    String str = "";
    Scanner scan = new Scanner(System.in);
    str = scan.nextLine();
    int[] countOfChar = new int[65536];
    int max = 0;
    char maxChar = ' ';
    for (char c:str.toCharArray()){
    countOfChar[c] = countOfChar[c] + 1;
    if (countOfChar[c] > max) {
    max = countOfChar[c];
    maxChar = c;
    }
    }
    System.out.println("The max count of char:'" + maxChar + "', count number is " + max);
    }
      

  9.   

    我来学习了  呵呵大家好啊 我的网站
    http://www.ourjavasky.cn我的论坛
    http://www.ourjavasky.cn/bbs
      

  10.   


    import java.util.*;public class TheMap {
        public static void main(String[] args){
           Map<String,Integer> ma = new HashMap<String, Integer>();
           String a  = "aaabbbccddefjdfskla";
           String [] b = a.split("");
           
          
           for(int i = 0;i<=a.length();i++){
               String c = b[i];
               
               Integer abc = ma.get(c);  
               if(abc==null)
               abc=1;
               else abc++;
               ma.put(c ,abc);            
           }
           System.out.print(ma);
            
        }
    }上次那个发错了,晕,重新发一个
      

  11.   

    import java.util.*;public class TheMap {
        public static void main(String[] args){
           Map<String,Integer> ma = new HashMap<String, Integer>();
           String a  = "aa aa bb bb cc cc dd dd happy no happy yes";
           String [] b = a.split(" ");
          
           
          
           for(int i = 0;i<b.length;i++){
               String c = b[i];
               
               Integer abc = ma.get(c);  
               if(abc==null)
               abc=1;
               else abc++;
               ma.put(c ,abc);            
           }
           System.out.print(ma);
            
        }
    }
      

  12.   

    上面的程序只是把所有键值都输出,我们应该只输出次数最多的字母(字母可能多余一个)。
    java code