Find the maximum occurring character in given String ?


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
   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