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;
}
}