Find the Maximum Occurring Character in a given String?

In this article, you will learn how to find the maximum occurring character in a given string using Java. To find the maximum occurring character in a given string, you can iterate through the string and keeps track of the frequency of each character. Once you have the frequency of each character, you can identify the character with the highest occurrence.

Java programs to find the maximum occurring character in String

Here are a few different solutions to find the maximum occurring character in a given string using Java:

1. Using HashMap

In this program, we use a HashMap to store the frequency of each character encountered in the input string. We then iterate through the characters, ignoring non-alphabetic characters, and update the frequency count in the charFrequencyMap. Finally, we find the character with the highest frequency and return it as the maximum occurring character.

Keep in mind that this implementation is case-insensitive, meaning it treats uppercase and lowercase letters as the same. If you want a case-sensitive version, simply remove the input = input.toLowerCase(); line from the code.

package com.javacodepoint.string;

import java.util.HashMap;
import java.util.Map;

public class MaxOccurringCharacter {
	
	public static char findMaxOccurringChar(String input) {
		if (input == null || input.isEmpty()) {
			throw new IllegalArgumentException("Input string is null or empty.");
		}

		// Create a HashMap to store character frequencies
		Map<Character, Integer> charFrequencyMap = new HashMap<>();

		// Convert the input string to lowercase to make it case-insensitive
		input = input.toLowerCase();

		// Iterate through the string and count the occurrences of each character
		for (char c : input.toCharArray()) {
			// Ignore non-alphabetic characters, you can modify this condition based on your
			// requirements
			if (Character.isAlphabetic(c)) {
				charFrequencyMap.put(c, charFrequencyMap.getOrDefault(c, 0) + 1);
			}
		}

		// Find the maximum occurring character and its frequency
		char maxChar = '\0'; // Initialize maxChar to a null character
		int maxFrequency = 0;

		for (Map.Entry<Character, Integer> entry : charFrequencyMap.entrySet()) {
			int frequency = entry.getValue();
			if (frequency > maxFrequency) {
				maxFrequency = frequency;
				maxChar = entry.getKey();
			}
		}

		return maxChar;
	}

	public static void main(String[] args) {
		String inputString = "Javacodepoint";
		char maxChar = findMaxOccurringChar(inputString);

		System.out.println("Maximum occurring character: " + maxChar);
	}
}

OUTPUT:

Maximum occurring character: a

2. Using Array

In this program, we use an integer array to store the frequency of each character encountered in the input string.

package com.javacodepoint.string;

/*
 * Find maximum occurring character using Array
 */
public class FindMaximumOccurringChar2 {

	// method to find maximum occurring character
	static char findMaxOccurringChar(String str) {

		// count array to hold the character count
		int count[] = new int[26];

		// count the character without checking case
		str = str.toLowerCase();

		// to store maximum occurring char ASCII no
		char maxOccuringChar = 0;

		// to store max count
		int maxCount = 0;

		// iterate the string
		for (int i = 0; i < str.length(); i++) {

			// pick a character and convert in ASCII no
			int ch = (int) str.charAt(i);

			// 97 is the ascii value for 'a'
			count[ch - 97] = count[ch - 97] + 1;

			// update the max count
			if (maxCount < count[ch - 97]) {
				maxOccuringChar = (char) ch;
				maxCount = count[ch - 97];
			}
		}

		return maxOccuringChar;
	}

	// main method to test
	public static void main(String[] args) {
		System.out.println("Find Maximum Occurring Character Example");
		System.out.println("Maximum Occurring Character in \"Java\" => " + findMaxOccurringChar("Java"));
		System.out.println("Maximum Occurring Character in \"Programming\" => " + findMaxOccurringChar("Programming"));
		System.out.println("Maximum Occurring Character in \"Example\" => " + findMaxOccurringChar("Example"));
	}

}

OUTPUT:

Find Maximum Occurring Character Example
Maximum Occurring Character in “Java” => a
Maximum Occurring Character in “Programming” => r
Maximum Occurring Character in “Example” => e

Java logical programs list


Java Basic Programs

Java String Programs

Java Programs based on the Collection Framework

Leave a Reply

Your email address will not be published. Required fields are marked *