Java program to print all unique words

Compose a capacity that accepts a String as a contention and prints all one of a kind words in it.

Examples:

Input : Java is great. Grails is also great
Output : Java
         Grails
         also

Approach:

 

The thought is to utilize guide to monitor words previously happened. On the whole, we need to remove all words from a String, as a string may contain a large number with accentuation marks. 

For separating words from a String, allude Extracting each word from a String.

 

// Java program to print unique words
// from a string

import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test
{
	// Prints unique words in a string
	static void printUniquedWords(String str)
	{
		// Extracting words from string
		Pattern p = Pattern.compile("[a-zA-Z]+");
		Matcher m = p.matcher(str);
		
		// Map to store count of a word
		HashMap<String, Integer> hm = new HashMap<>();
		
		// if a word found
		while (m.find())
		{
			String word = m.group();
			
			// If this is first occurrence of word
			if(!hm.containsKey(word))
				hm.put(word, 1);
			else
				// increment counter of word
				hm.put(word, hm.get(word) + 1);
			
		}
		
		// Traverse map and print all words whose count
		// is 1
		Set s = hm.keySet();
		Iterator itr = s.iterator();

		while(itr.hasNext())
		{
			String w = itr.next();
			
			if (hm.get(w) == 1)
				System.out.println(w);
		}
	}
	
	// Driver Method
	public static void main(String[] args)
	{
		String str = "Java is great. Grails is also great";
		printUniquedWords(str);
	}
}

Output: 

Java
Grails
also

 

Submit Your Programming Assignment Details