Related Articles

Related Articles

Java Program to Find Duplicate Words in a Regular Expression
  • Last Updated : 20 Nov, 2020

Given an Expression which is represented by String. The task is to find duplicate elements in a Regular Expression in Java. Use a map or set data structures for identifying the uniqueness of words in a sentence.

Examples:

Input : str = " Hi, I am Hritik and I am a programmer. "
Output: I am
Explanation: We are printing duplicate words in the given Expression.

Input : str = " Ironman is alive. "
Output: There is no Duplicate Word.
Explanation: There are no duplicate words present in the given Expression.

Approach 1:

  1. Get the Expression.
  2. Store all Words in an Array.
  3. Splitting word using regex ‘\\W’. (use of regex)
  4. Iterating in the array and storing words and all the number of occurrences in the Map.
  5. Now, In the Map, If the number of occurrences is more than 1 then we are printing the word.

Below is the implementation of the above approach:

Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Find Duplicate Words in a Regular Expression in Java
import java.util.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // we have a expression
        String expression
            = "Hi, I am Hritik and I am a programmer";
  
        // splitting words using regex
        String[] words = expression.split("\\W");
  
        // we are creating a Map for storing
        // strings and it's occurrence"
        Map<String, Integer> word_map = new HashMap<>();
  
        // Here we are iterating in words array and
        // increasing it's occurrence by 1.
        for (String word : words) {
  
            if (word_map.get(word) != null) {
                word_map.put(word, word_map.get(word) + 1);
            }
  
            // if the word came once then occurrence is 1.
            else {
                word_map.put(word, 1);
            }
        }
  
        // creating a keyset of word_map
        Set<String> word_set = word_map.keySet();
  
        // We are iterating in word set
        for (String word : word_set) {
  
            // if word matched then checking occurrence
            if (word_map.get(word) > 1)
  
                // here we are printing the duplicate words
                System.out.println(word);
        }
    }
}

chevron_right


Output



I
am

Approach 2:

  1. Get the Expression.
  2. Store all Words in an Array.
  3. Splitting word using regex ‘\\W’. (use of regex)
  4. Matching every word of the array with other words through iteration.
  5. If words matched then adding words in a Set because set removes the repeated words added by the flow of iteration.
  6. Finally, we are printing the set.

Below is the implementation of the above approach:

Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Find Duplicate Words in a Regular Expression in Java
import java.util.*;
  
public class Main {
  
    public static void main(String[] args)
    {
        String expression
            = "Hi, I am Hritik and I am a programmer";
  
        // splitting words using regex
        String[] words = expression.split("\\W");
  
        // creating object of HashSet class implemented by
        Set<String> set = new HashSet<>();
  
        // here we are iterating in Array
        for (int i = 0; i < words.length - 1; i++) {
  
            for (int j = 1; j < words.length; j++) {
  
                // if strings matched then adding strings in
                // Set because if we ad same string set will
                // remove one and we have only repeated
                // words.
                if (words[i].equals(words[j]) && i != j) {
                    set.add(words[i]);
                }
            }
        }
  
        // here we are printing the set
        System.out.println(set);
    }
}

chevron_right


Output

[I, am]

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up
Recommended Articles
Page :