zoukankan      html  css  js  c++  java
  • java 获取String出现最多次数的字段

    package hello;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Map.Entry;
    
    public class MyAiPaWorker {
        /**
         * java一个字符串中出现次数最多的字符以及次数
         * @param args
         */
        public static void main(String[] args) {
            String str  = "abccadbcadbc";
            Map<Character,Integer> map = getNumberOfCharacters(str);
            sortMap(map);
        }
        
        /**
         * 将字符串放进map并将字母作为key值,将出现次数作为value值
         * @param str 字符串
         */
        public static Map<Character,Integer>  getNumberOfCharacters(String str){
            char [] chars = str.toCharArray();// 转化成char[] 数组
            // Character 类在对象中包装一个基本类型 char 的值
            Map<Character,Integer> map = new HashMap<Character,Integer>();
            // 循环获取每个字符出现的个数
            for(char c:chars){
                if(map.containsKey(c)){
                    map.put(c, map.get(c)+1);
                }else{
                    map.put(c, 1);
                }
            }
            //直接输出字符以及出现的个数
            // TODO map.entrySet()返回map中各个键值对映射关系的集合。
            // Map.Entry是Map声明的一个内部接口,此接口为泛型,
            // 定义为Entry<K,V>。它表示Map中的一个实体(一个key-value对)
            for(Map.Entry<Character,Integer> entry :map.entrySet()){
                System.out.println("字符是"+entry.getKey()+"出现的次数是"+entry.getValue());
            }
            return map;
        }
        
        //排序map
        private static void sortMap(Map<Character, Integer> map) {
            List<Map.Entry<Character, Integer>> list = new ArrayList<Map.Entry<Character,Integer>>(map.entrySet());
            Collections.sort(list,new Comparator<Map.Entry<Character, Integer>>() {
                //倒序排列
                @Override
                public int compare(Entry<Character, Integer> o1,
                        Entry<Character, Integer> o2) {
                    return o2.getValue().compareTo(o1.getValue());
                }
            });
            //打印出现自出的字符以及次数
            System.out.println("出现次数最多的字符"+list.get(0).getKey()+"==次数为"+list.get(0).getValue());
        }
    }
  • 相关阅读:
    ClassLoader类加载器
    java反射(二)--反射应用案例
    java反射(一)--认识反射机制
    javaIO流(四)--输入与输出支持
    javaIO流(三)--IO深入操作
    javaIO流(二)--字节流与字符流
    javaIO流(一)--File类的基本使用
    python文件读写
    python的logging模块
    查看python版本
  • 原文地址:https://www.cnblogs.com/czq520/p/11769913.html
Copyright © 2011-2022 走看看