import java.util.*;
public class zifuchuan{
public int[] GetcharCount(String str)
{ int[] char_count=new int[62];
for(int i=0;i<char.count.length;i++)
char_count[i]=0;
char[] char_set=str.to.charArray();
for(int i=0;i<char.set.length;i++)
char temp=char_set[i];
if(temp>='a' && temp<='z')
{ char_count[temp-'a']=char_count[temp-'a']+1; } //以小写字母为参照点
if(temp>='A' && temp<='Z')
{ char_count[temp-'A'+26]=char_count[temp-'A'+26]+1; } //小写字母一共有26个
if(temp>='0' && temp<='9')
{ char_count[temp-'0'+52]=char_count[temp-'A'+52]+1; } //小写字母加大写字母一共有52个
} return char_count;
}
public void Getoutput(int [] count){
for(int i=0;i<count.length;i++)
{ if(count[i]!=0)//如果这个字符存在
{if(i>=26 && i<=52)
System.out.println((char)(i-26+'A')+''."+count[i]); //输出大写字母
else
if(i>=52)
System.out.println((char)(i-52+'0')+''."+count[i]); //输出数字
else
System.out.println((char)(i+'a')+''."+count[i]); //输出小写字符
}
}
}
public string stringsort(int[] count){
String result=" ";
for(int i=0;i<count.length;i++)
{ if(count[i]!=0)
if(i>=26 && i<=52)
{ for(int j=0;j<count[i];j++)
result=result+(char)(i-26+'A');
}
else if(i<26)
{ for(int j=0;j<count[i];j++)
result=result+(char)(i+'a');
else
{ for(int j=0;j<count[i];j++)
result=result+(char)(i-52+'0');
}
}
}
return result;
}
public static void main(String[] args){
zifuchuan test=new zifuchuan();
Scanner scan=new Scanner(System.in);
System.out.print("请输入字符串");
String input=scan.nextLine();
int[] count=test.GetcharCount(input);
test.Getoutput(count);
String ret=test.stringsort(count);
System.out.println("排序结果"+ret);
}
}