华为机试(101)字符统计

package java_huaweijishi;
import java.util.*;
/**
 * 题目:如果统计的个数相同,则按照ASCII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。
实现以下接口:
输入一个字符串,对字符中的各个英文字符,数字,空格进行统计(可反复调用)
按照统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASII码由小到大排序输出
清空目前的统计结果,重新统计
调用者会保证:
输入的字符串以‘\0’结尾。
输入:输入一串字符。
输出:对字符中的
各个英文字符(大小写分开统计),数字,空格进行统计,
并按照统计个数由多到少输出,如果统计的个数相同,则按照ASII码由小到大排序输出 。
如果有其他字符,则对这些字符不用进行统计。
 * @author hexiaoli
 * 思路:
 * 1)用一个数组统计计数结果,遍历字符,出现字符对应count位置加加
 * 2)如果某个字符对应的字符count结果大于max,更新max.
 * 3)按照max结果从大到小输出
 */
public class StringCountPrint {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
        while(input.hasNext()){ //表示可以不断输入字符串的的得出结果,即多次测试
            String str = input.next();
            int max = 0;
            int[] count=new int[256];
         for(int i=0;i<str.length();i++){
            count[str.charAt(i)]++;
            if(count[str.charAt(i)]>max){
                 max=count[str.charAt(i)];
            }
        }
         while(max!=0){
             for(int i=0;i<256;i++){
              if(count[i]==max){
               System.out.print((char)(i));
              }
             }
             max--;
            }
            System.out.println();       
        }
 

	}

}

猜你喜欢

转载自blog.csdn.net/hxl0925/article/details/90749011
今日推荐