Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a c++ program to do the following: Reads in and prints a text, line by lin

ID: 3693873 • Letter: W

Question

Write a c++ program to do the following: Reads in and prints a text, line by line, and calls a series of functions. The main program calls a function : diffwords() to count the number of different words in the entire text (ignoring case). wordcount() to count the number of times each word appears in the text. printcount() to print a list of all the words in the text, together with the count of the number of times they appear. For example, if a word occurs twice in the text, it appears only once on the list, with a count of 2. Print the list of words in alphabetical order. Use other functions wherever appropriate. For example, suppose the text is this: The elephant ate the banana and the giraffe ate the banana. The function diffwords() produces a count of 6 ("the", "elephant", "ate", "banana", and "giraffe"); wordcount() produces this list: and 1 ate 2 banana 2 elephant 1 giraffe 1 the 4 Note: No Globle Variables

Explanation / Answer

SentenceToWords.java

package org.students;

import java.util.Scanner;
import java.util.ArrayList;
import java.util.Arrays;

public class SentenceToWords {

public static void main(String[] args) {
   //Scanner object To get the input from the user.
Scanner sc = new Scanner( System.in );
System.out.print( "Please enter a line of text ::" );
String userInput = sc.nextLine();
userInput = userInput.toLowerCase();

userInput = userInput.replaceAll( "\W", " " ); // strip out any non words.
userInput = userInput.replaceAll( " ", " " ); // strip out any double spaces
// created from stripping out non words
//Split the user entered sentence into words. // in the first place!
String[] tokens = userInput.split( " " );
System.out.println( userInput );
//Calling the Methods.
wordcount(tokens);
diffwords(tokens);
  
}

//Method to find the different words in the sentence.
private static void diffwords(String[] tokens) {

   ArrayList<String> diffw=new ArrayList();
ArrayList< String > items = new ArrayList< String >();

items.addAll( Arrays.asList( tokens ) );

int count = 0;

for( int i = 0; i < items.size(); i++ )
{
  

if(!diffw.contains(items.get(i)))
       {
   diffw.add(items.get(i));
       }

}
System.out.println(" ");
System.out.println("The No of different words in the sentence is::"+diffw.size());
System.out.println("The Different words in the Sentence are::");
   for(String str1:diffw)
   {
       System.out.println(str1+" ");
   }
  
  
}
//Method to find the each word count in the sentence
private static void wordcount(String[] tokens)
{
  

   ArrayList< String > items = new ArrayList< String >();

   items.addAll( Arrays.asList( tokens ) );

   int count = 0;
   System.out.println(" ");
System.out.println("The No of times each word repeted in the sentence : ");
   for( int i = 0; i < items.size(); i++ )
   {
   System.out.printf( "%s: ", items.get( i ) );
   for( int j = 0; j < items.size(); j++ )
   {
   if( items.get( i ).equals( items.get( j ) ) )
   count++;
   if( items.get( i ).equals( items.get( j ) ) && count > 1 )
   items.remove( j ); // after having counted at least
   } // one, remove duplicates from List
   System.out.printf( "%d ", count );
   count = 0;
   }
  
}


}

________________________________________________________________________________________________

output:

Please enter a line of text ::the elephant ate the banana and the giraffe ate the banana
the elephant ate the banana and the giraffe ate the banana

The No of times each word repeted in the sentence :
the: 4
elephant: 1
ate: 2
banana: 2
and: 1
giraffe: 1

The No of different words in the sentence is::6
The Different words in the Sentence are::
the
elephant
ate
banana
and
giraffe

_________________________________________________________________________________________________

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote