java-得到字符串中出現次數最最多的字符,並打印出字符以及出現次數


最近面試總被面試到,整理出幾種方式(有參考別人的部分)

    /**
     * java一個字符串中出現次數最多的字符以及次數
     * @param args
     */
    public static void main(String[] args) {
        String str  = "abccadbcadbc";
        //字符串放入map
        Map<Character,Integer> map = getNumberOfCharacters(str);
        //若想要打印出出現次數最多的字母以及次數,要將map進行排序
        sortMap(map);
        
    }
    
    /**
     * 將字符串放進map並將字母作為key值,將出現次數作為value值
     * @param str 字符串
     */
    public static Map<Character,Integer>  getNumberOfCharacters(String str){
        char [] chars = str.toCharArray();
        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);
            }
        }
        
        //直接輸出字符以及出現的個數
        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());
    }

  如有問題,請留言溝通,有更好的方法,請留言交流,謝謝.閱讀全文


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM