这个程序是要统计排序  "Language Specification" 要求输出:a:3,c:2,e:2…
         aaaccee我现在已经做到了 a:3,c:2,e:2...现在不知道怎么输出下面  aaaccee  
/*
 * Test
 * 
 */package cn.com.shdb.jt;import java.util.ArrayList;    
import java.util.List; 
import java.util.Hashtable; 
import java.util.Enumeration;public class Test {
     public static void main(String[] args) {
        String str = "Language Specification";
        str = str.replaceAll(" ","");
        proc(str);
    }    public static void proc(String name) {
        Hashtable Num = add (name);
        List Test = get (Num);
        Test = sort(Test);
        out(Test,Num);
        
    }    public static Hashtable add(String name) {
        
        Hashtable Num = new Hashtable (); 
            
        for (int i=0;i< name.length();i++) {
        String bata = name.substring(i,i+1).toLowerCase();
           
                if (Num.containsKey(bata)) {
                    int out = ((Integer) Num.get(bata)).intValue()+1;
                    Num.put(bata ,out);
                }
                    
                    else {
                        Num.put (bata,1);
                    }
           
        }
        return Num;
    }    public static List get(Hashtable Num) {
        List Test =  new ArrayList ();
        for (Enumeration e = Num.keys(); e.hasMoreElements() ;) {
            Test.add( e.nextElement());
        }
        return Test;
    }
    public static List sort(List Test) {        int k;
        int j;
        String temp = new String();        for(int i=0;  i< Test.size();i++) {
            for ( j=i,k=i ; j< Test.size(); j++) {
                String A = (String)Test.get(j);
                String B = (String)Test.get(k);
                if (A.compareTo(B)< 0)
                    k=j;
            }
            temp=(String)Test.get(i);
            Test.set(i, (String)Test.get(k));
            Test.set(k,temp);
        }
        return Test;
    }
    public static List out(List testGet,Hashtable numGet) {
        for (int i=0;i<testGet.size() ;i++ ) {
            System.out.print((String)testGet.get(i) +":" 
            + numGet.get(testGet.get(i)).toString ()+",");
            
        }
        
    }
}

解决方案 »

  1.   

    public class Test {

    /**
     * Method main
     *
     *
     * @param args
     *
     */
    public static void main(String[] args) {
    // TODO: Add your code here
    String s="Language   Specification";
    java.util.Map stat=new java.util.HashMap();
    char[] cs=s.toCharArray();
    for(int i=0;i<cs.length;i++){
    if(cs[i]!=' '){
    Integer count=(Integer)stat.get(new Character(cs[i]));
    if(count!=null){
    count++;
    stat.put(new Character(cs[i]),count);
    }
    else{
    stat.put(new Character(cs[i]),new Integer(1));
    }
    }
    }
    java.util.Set keyset=stat.keySet();
    Object[] keyarray=keyset.toArray();
    java.util.Arrays.sort(keyarray);

    StringBuffer sb=new StringBuffer();
    for(int i=0;i<keyarray.length;i++){
    int count=((Integer)stat.get(keyarray[i])).intValue();
    System.out.print(keyarray[i]+":"+count+",");
    for(int j=0;j<count;j++)
    sb.append(keyarray[i]);
    }
    System.out.println();
    System.out.println(sb.toString());
    }
    }
      

  2.   

    唉package cn.com.shdb.jt;import java.util.ArrayList;
    import java.util.Enumeration;
    import java.util.Hashtable;
    import java.util.List;public class Test {
    public static void main(String[] args) {
    String str = "Language   Specification";
    str = str.replaceAll("   ", "");
    proc(str);
    } public static void proc(String name) {
    Hashtable Num = add(name);
    List Test = get(Num);
    Test = sort(Test);
    out(Test, Num); } public static Hashtable add(String name) { Hashtable Num = new Hashtable(); for (int i = 0; i < name.length(); i++) {
    String bata = name.substring(i, i + 1).toLowerCase(); if (Num.containsKey(bata)) {
    int out = ((Integer) Num.get(bata)).intValue() + 1;
    Num.put(bata, out);
    } else {
    Num.put(bata, 1);
    } }
    return Num;
    } public static List get(Hashtable Num) {
    List Test = new ArrayList();
    for (Enumeration e = Num.keys(); e.hasMoreElements();) {
    Test.add(e.nextElement());
    }
    return Test;
    } public static List sort(List Test) { int k;
    int j;
    String temp = new String(); for (int i = 0; i < Test.size(); i++) {
    for (j = i, k = i; j < Test.size(); j++) {
    String A = (String) Test.get(j);
    String B = (String) Test.get(k);
    if (A.compareTo(B) < 0)
    k = j;
    }
    temp = (String) Test.get(i);
    Test.set(i, (String) Test.get(k));
    Test.set(k, temp);
    }
    return Test;
    } public static void out(List testGet, Hashtable numGet) {
    StringBuffer sb=new StringBuffer();
    for (int i = 0; i < testGet.size(); i++) {
    int count=((Integer)numGet.get(testGet.get(i))).intValue();
    System.out.print(testGet.get(i) + ":"+ count + ",");
    for(int j=0;j<count;j++)
    sb.append(testGet.get(i));
    }
    System.out.println();
    System.out.println(sb.toString());

    }
    }
      

  3.   

      public   static  void out(List   testGet,Hashtable   numGet)   { 
                    for   (int   i=0;i <testGet.size()   ;i++   )   { 
                            System.out.print((String)testGet.get(i)+":"   
                            +   numGet.get(testGet.get(i)).toString()+","); 
                            
                    } 
                    for(int i=0;i<testGet.size();i++)
                     {
                       String c=(String)testGet.get(i);
                        for(int j=0;j<((Integer)numGet.get(c)).intValue();j++)
                        {
                          System.out.print(c);
                         }
                     }
                    
            } 
    测试输出结果:a:3,c:2,e:2,f:1,g:2,i:3,l:1,n:2,o:1,p:1,s:1,t:1,u:1,aaacceefggiiilnnopstu
    我也是菜鸟 自己照资料改的 
      

  4.   

    说错了  我楼上的大哥 IMA的 学习中