Introduction
Counting the occurrences of each character in a string is a common task in text processing. Using a HashMap allows you to efficiently store and update the frequency of characters. This guide will walk you through writing a Java program that counts the occurrences of each character in a given string using a HashMap.
Problem Statement
Create a Java program that:
- Prompts the user to enter a string.
- Uses a HashMapto count the occurrences of each character in the string.
- Displays each character along with its count.
Example:
- Input: "hello"
- Output:
h: 1 e: 1 l: 2 o: 1
Solution Steps
- Read the String: Use the Scannerclass to take the string as input from the user.
- Initialize a HashMap: Use a HashMapto store each character of the string as keys and their counts as values.
- Iterate Through the String: Loop through each character in the string and update the count in the map.
- Display the Character Counts: Print each character along with its count.
Java Program
// Java Program to Count the Occurrences of Each Character Using HashMap
// Author: https://www.rameshfadatare.com/
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class CharacterCountUsingHashMap {
    public static void main(String[] args) {
        // Step 1: Read the string from the user
        try (Scanner scanner = new Scanner(System.in)) {
            System.out.print("Enter a string: ");
            String input = scanner.nextLine();
            
            // Step 2: Initialize the HashMap
            Map<Character, Integer> charCountMap = new HashMap<>();
            
            // Step 3: Iterate through the string and update the HashMap
            for (char ch : input.toCharArray()) {
                charCountMap.put(ch, charCountMap.getOrDefault(ch, 0) + 1);
            }
            
            // Step 4: Display the character counts
            System.out.println("Character occurrences:");
            for (Map.Entry<Character, Integer> entry : charCountMap.entrySet()) {
                System.out.println(entry.getKey() + ": " + entry.getValue());
            }
        }
    }
}
Explanation
Step 1: Read the String
- The Scannerclass is used to read a string input from the user. ThenextLine()method captures the entire line as a string.
Step 2: Initialize the HashMap
- A HashMapis used to store each character as a key and its count as the value. This allows for efficient storage and retrieval of character counts.
Step 3: Iterate Through the String
- A forloop iterates over each character in the string, converting the string to a character array usingtoCharArray().
- The getOrDefault()method is used to check if the character already exists in the map. If it does, the count is incremented by 1; if not, the character is added to the map with an initial count of 1.
Step 4: Display the Character Counts
- The program iterates through the HashMapentries and prints each character along with its count usingSystem.out.println().
Output Example
Example:
Enter a string: hello
Character occurrences:
h: 1
e: 1
l: 2
o: 1
Conclusion
This Java program demonstrates how to count and display the occurrences of each character in a user-input string using a HashMap. It covers essential concepts such as string manipulation, using maps to store character counts, and iterating through collections, making it a valuable exercise for beginners learning Java programming.