字符统计

2021-01-30  本文已影响0人  simon_kin

题目描述

输入一个只包含小写英文字母和数字的字符串,按照不同字符统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASCII码由小到大排序输出。

输入描述:

一个只包含小写英文字母和数字的字符串。

输出描述:

一个字符串,为不同字母出现次数的降序表示。若出现次数相同,则按ASCII码的升序输出。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Main {

    public static void main(String[] args) throws IOException{

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str;
        while ( (str=br.readLine())!=null ){
            StringBuilder sb = new StringBuilder();
            int[] nums = new int[128];
            for (int i=0;i<str.length();i++){
                nums[str.charAt(i)] = nums[str.charAt(i)] + 1;
            }
            int max = 0;
            for (int i=0;i<128;i++){
                if (max < nums[i]){
                    max = nums[i];
                }
            }
            while (max!=0){
                for (int i=0;i<128;i++){
                    if (max == nums[i]){
                        sb.append((char)i);
                    }
                }
                max --;
            }
            System.out.println(sb.toString());
        }
    }

}
上一篇下一篇

猜你喜欢

热点阅读