package demo_0602;
import java.util.Scanner;
public class Main {
//如果统计的个数相同,则按照的ASCAII码2的,则按照ASII码由小到大排序输出
// 如果有其他字符,则对这些字符不用进行统计。
// 实现以下接口:
// 输入一个字符串,对字符中的各个英文字符,数字,空格进行统计(可反复调用)
// 按照统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASII码由小到大排序输出
// 清空目前的统计结果,重新统计
// 调用者会保证:
// 输入的字符串以‘\0’结尾。
public static void main(String[] args) {
// 输入描述:
// 输入一串字符。
// 输出描述:
// 对字符中的 各个英文字符(大小写分开统计),数字,空格进行统计,并按照统计个数由多到少输出,如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。
Scanner in = new Scanner(System.in);
while(in.hasNext()) {
String str=in.next();
int[] mat = new int[128];
for(int i =0;i<str.length();i++) {
if(str.charAt(i)>='a'
&& str.charAt(i)<='z'
||str.charAt(i)>='A'
&&
str.charAt(i)<='Z'
||str.charAt(i)>='0'
&&str.charAt(i)<='9'
||str.charAt(i)==' '
) {
//存储字符的ASCII码
int tmp = str.charAt(i);
mat[tmp]++;
}
}
//找出最大数
int max =0;
for(int i=0;i<128;i++){
if(mat[i]>max){
max= mat[i];
}
}
//以此输出:
String res="";
for(int i=max;i>0;i--) {
for(int k=0;k<128;k++) {
if(mat[k]==i) {
res+=(char)k;
}
}
}
System.out.println(res);
}
}
}