frequency of each word in a String using streams

package exercise.strings;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;

public class FrequencyOfEachWord {

    public static void main(String[] args) {
        String input = "Hello Mohan, how are you mohan, did you completed kafka training mohan ?";
        System.out.println(frequencyOfEachWordMap(input));
    }

    private static Map<String, Long> frequencyOfEachWordUsingStreams(String input) {
        return Arrays.stream(input.split("\\s+"))
                .map(word -> word.toLowerCase().replaceAll("[^a-z0-9\\s]", "")) // Clean and normalize
                .filter(word -> !word.isEmpty())                             // Remove empty strings after cleaning
                .collect(Collectors.groupingBy(
                        Function.identity(),                                     // Use the word as the key
                        Collectors.counting()                                    // Count occurrences
                ));
        // {how=1, are=1, kafka=1, mohan=3, training=1, completed=1, hello=1, did=1, you=2}

    }

    private static Map<String, Integer> frequencyOfEachWordMap(String input) {

        input = input.toLowerCase().replaceAll("[^a-z0-9\\s]", ""); //Clean and normalize

        Map<String,Integer> frequencyCount = new HashMap<>();

        for(String word : input.split("\\s+")){

            frequencyCount.put(word, frequencyCount.getOrDefault(word,0)+1);
        }

        for(String s : frequencyCount.keySet()){
            if( frequencyCount.get(s) > 1){
                System.out.println(s + ":"+frequencyCount.get(s));
            }
        }

        return frequencyCount; //{how=1, are=1, mohan=3, kafka=1, training=1, hello=1, completed=1, you=2, did=1}

    }



}



This site uses Just the Docs, a documentation theme for Jekyll.