Java 统计字符串中字符出现最多次数的字符(如果次数一样,可以取首次出现,或最后一次的字符)

题目:求给定的一串字符串中,统计各个字符出现的次数,如果次数一样,输出第一次的字符和次数

package com.thread.test.ch1;

import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Set;

public class FindMaxCountTest {

    public static void main(String[] args) {
        String test="aaaabbcddddeeee";
        char[] array=test.toCharArray();
        //统计字符出现次数
        LinkedHashMap<Character,Integer> charNumMap=CountCharNum(array);
        //获取最大次数的字符和次数
        char maxCountMap= FindMaxCount(charNumMap);
    }
    public static LinkedHashMap<Character,Integer> CountCharNum(char[] array){
        LinkedHashMap<Character, Integer> hashMap = new LinkedHashMap<Character, Integer>();
        if (!(array ==null || array.length==0)){
            for (int i = 0; i < array.length; i++) {
//                if (null!=hashMap.get(array[i])){
                if (hashMap.containsKey(array[i])){
                    hashMap.put(array[i], hashMap.get(array[i]) + 1);
                }else {
                    hashMap.put(array[i],1);
                }
            }
        }
        return hashMap;
    }

    public static char FindMaxCount(LinkedHashMap<Character,Integer> charNumMap){
        Set<Character> keySet=charNumMap.keySet();
        Iterator key_iter=keySet.iterator();
        Character maxChar = (Character) key_iter.next();
        Integer maxValue=charNumMap.get(maxChar);
        while (key_iter.hasNext()){
            Character tmp=(Character) key_iter.next();
            //使用linkedhashmap获得有序的数据,如果这里写成=号就表示最后一次出现的字符,没有=号就是第一次出现的字符
            if (maxValue<charNumMap.get(tmp)){
                maxChar=tmp;
                maxValue=charNumMap.get(tmp);
            }
        }
        System.out.println("首次出现最多次数的字符为:"+maxChar+" 它的次数为:"+maxValue);
        return maxChar;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值