Write a program that reads in and prints a text, line by line, and calls a serie
ID: 3853327 • Letter: W
Question
Write a program that 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). It also calls a function wordcount() to count the number of times each word appears in the text. Then it calls a function 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 4Explanation / Answer
/**
*
* @author Sam
*/
public class WordCount {
private String s;
String uniqueWords[];
int uniqueWordsCount[];
private void different() {
String[]words = s.split(" ");
uniqueWords= new String[words.length];
int index = 0, i;
for (String word: words){
for (i = 0; i < index; i++)
if(uniqueWords[i].equalsIgnoreCase(word))
break;
if(i == index) //not found because the loop didnt break
uniqueWords[index++] = word.toLowerCase();
}
String[] resultStrings = new String[index];
System.arraycopy(uniqueWords, 0, resultStrings, 0, index);
uniqueWords = resultStrings;
}
private void wordCount() {
String[]words = s.split(" ");
uniqueWordsCount = new int[uniqueWords.length];
for (String word : words)
for (int i = 0; i<uniqueWords.length; i++)
if (word.equalsIgnoreCase(uniqueWords[i]))
uniqueWordsCount[i]++;
}
private void printCount() {
for (int i = 0; i<uniqueWords.length; i++)
System.out.println(uniqueWords[i] + " " + uniqueWordsCount[i]);
}
public static void main(String[] args) {
WordCount wc = new WordCount();
wc.s = "The elephant ate the banana and the giraffe ate the banana";
wc.different();
wc.wordCount();
wc.printCount();
}
}
Here you go champ. The answer is ready for you. If you need assistance, please let me know. I shall be glad to help you.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.