C Programs Tutorials | IT Developer
IT Developer

Java Programs - Advanced



Share with a Friend

Common Words in a Paragraph Program - Java Program

Write a program to accept a paragraph containing two sentences only. The sentences may be terminated by either ‘.’, ‘?’ or ‘!’ only. Any other character may be ignored. The words are to be separated by a single blank space and are in uppercase.

Perform the following tasks:
(a) Accept the paragraph and check for validity.
(b) Obtain the length/size of the two sentences separately (number of words).
(c) Find the common words which occur in both the sentences.

Test your program with the sample data and some random data:

Example 1
INPUT: IS IT CLOUDY? IT MAY RAIN BECAUSE IT IS CLOUDY.
OUTPUT:
SENTENCE 1: 2 WORDS
SENTENCE 2: 7 WORDS
COMMON WORDS: IS IT CLOUDY

 

Example 2
INPUT: TO BE OR NOT TO BE. TO LET GO AND BE HAPPY.
OUTPUT:
SENTENCE 1: 6 WORDS
SENTENCE 2: 6 WORDS
COMMON WORDS: TO BE

 

Example 3
INPUT: IF YOU DRIVE FAST, YOU MAY MEET WITH AN ACCIDENT.
OUTPUT: INVALID PARAGRAPH

Example 4
INPUT: HOW ARE YOU@
OUTPUT: INVALID INPUT

 

import java.util.Scanner; import java.util.StringTokenizer; class CommonWords{ public static void main(String[] args){ Scanner in = new Scanner(System.in); System.out.print("Enter the paragraph: "); String p = in.nextLine().toUpperCase(); p = p.trim(); char last = p.charAt(p.length() - 1); if(".?!".indexOf(last) == -1){ System.out.println("INVALID INPUT"); return; } StringTokenizer st = new StringTokenizer(p, ".?!"); int count = st.countTokens(); if(count != 2){ System.out.println("INVALID PARAGRAPH"); return; } int count1 = 0; int count2 = 0; String s1 = st.nextToken(); String s2 = st.nextToken(); StringTokenizer s = new StringTokenizer(s1, " ,"); count = s.countTokens(); String w1[] = new String[count]; for(int i = 0; i < count; i++) w1[i] = s.nextToken(); s = new StringTokenizer(s2, " ,"); count = s.countTokens(); String w2[] = new String[count]; for(int i = 0; i < count; i++) w2[i] = s.nextToken(); System.out.println("SENTENCE 1: " + w1.length); System.out.println("SENTENCE 2: " + w2.length); String common[] = new String[w1.length]; for(int i = 0; i < common.length; i++) common[i] = new String(); int index = 0; for(int i = 0; i < w1.length; i++){ if(!(search(w1[i], common)) && search(w1[i], w2)) common[index++] = w1[i]; } System.out.print("COMMON WORDS: "); for(int i = 0; i < common.length; i++){ if(common[i].length() > 0) System.out.print(common[i] + " "); else break; } System.out.println(); } public static boolean search(String w, String a[]){ for(int i = 0; i < a.length; i++){ if(w.equals(a[i])) return true; } return false; } }

Output

 
    
OUTPUT 1:

Enter the paragraph: IS IT CLOUDY? IT MAY RAIN BECAUSE IT IS CLOUDY.
SENTENCE 1: 3
SENTENCE 2: 7
COMMON WORDS: IS IT CLOUDY 

OUTPUT 2:

Enter the paragraph: TO BE OR NOT TO BE. TO LET GO AND BE HAPPY.
SENTENCE 1: 6
SENTENCE 2: 6
COMMON WORDS: TO BE 
 
OUTPUT 3:

Enter the paragraph: IF YOU DRIVE FAST, YOU MAY MEET WITH AN ACCIDENT.
INVALID PARAGRAPH