美文网首页
查找字符串中重复字符及次数

查找字符串中重复字符及次数

作者: 从0到1的小姐姐 | 来源:发表于2021-12-28 19:50 被阅读0次

需求:查找字符串中重复字符及次数,并输出出现次数最多的字符及次数
例如:"ddadgjioajgial"
输出:出现最多次数的是:a次数是:3
思路:用hashmap的键值对去存,key存字符,value存出现的次数,遍历的时候作比较
可优化的点:重复次数一样的全都输出
注意事项:对象和包装类的比较不能用大于小于号,要么重写compareTo方法,要么转型

package Practise;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * 统计字符串中重复字符及次数,还有输出最多次数的字符
 */
public class StringNum {
    public static void main(String[] args) {
        String a = "ddadgjioajgial";
        char[] b = a.toCharArray();
        HashMap m = new HashMap();
        for(Character i:b){
            //采用哈希map去存字符和出现次数
            if(m.containsKey(i)){
                int temp = (int) m.get(i);//注意这里m.get后是对象,不转为int,无法使用+号
                m.put(i,temp+1);
            }else {
                m.put(i,1);
            }
        }
        System.out.println(m);
        //hashmap的遍历
        Set<Map.Entry<Character,Integer>> set1 = m.entrySet();
        //找到最大的value和字符
        int temp = 0;
        Character value = null;
        for(Map.Entry k:set1){
            int va = (int)k.getValue();
            if(va>temp){//如果不转型,包装类之间的比较不能用><号,要用compareTo方法
                temp = (int) k.getValue();
                value = (Character) k.getKey();
            }

        }
        System.out.println("出现最多次数的是:"+value+"次数是:"+temp);
    }
}

输出为:


image.png

相关文章

网友评论

      本文标题:查找字符串中重复字符及次数

      本文链接:https://www.haomeiwen.com/subject/hlnyqrtx.html