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
Post a Comment