Find the maximum occurring character in given String ?


   public static void main(String[] args) {
        System.out.println(maxOccurringChar("122333444455555666666"));
    }

    public static Character maxOccurringChar(String s) {

        Map<Character, Integer> charCountMap = new HashMap<>();
        char[] array = s.toCharArray();

        for (int i = 0; i < array.length; i++) {
            if(array[i] != ' ') {
                Integer occ = charCountMap.getOrDefault(array[i], 0);
                charCountMap.put(array[i], ++occ);
            }
        }

        Map.Entry<Character, Integer> maxEntry = charCountMap.entrySet().stream()
                                                                   .max(Map.Entry.comparingByValue()).get();
                                                                   
//      Map.Entry<Character, Integer> maxEntry = getEntryWithMaxValue(charCountMap);

        System.out.println(String.format("Character %s occurs %s times.", maxEntry.getKey(), maxEntry.getValue()));

        return integerEntry.getKey();
    }

    private static Map.Entry<Character, Integer> getEntryWithMaxValue(Map<Character, Integer> charCountMap) {
        Set<Map.Entry<Character, Integer>> entrySet = charCountMap.entrySet();
        Map.Entry<Character, Integer> maxEntry = charCountMap.entrySet().iterator().next();

        for (Map.Entry<Character, Integer> entry : entrySet) {
            if (entry.getValue() > maxEntry.getValue()) {
                maxEntry = entry;
            }
        }
        return maxEntry;
    }

Comments

Popular posts from this blog

Print staircase with both base and height equal to n

Find the longest substring without repeating characters