Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

4.

15 LAB: Word frequencies - methods


Write a program that reads a list of words. Then, the program outputs those words
and their frequencies. The input begins with an integer indicating the number of
words that follow. Assume that the list will always contain less than 20 words.

Ex: If the input is: 5 hey hi Mark hi mark

the output is:


hey 1
hi 2
Mark 1
hi 2
mark 1

Hint: Use two arrays, one for the strings, another for the frequencies.

Your program must define and call a method:


public static int getFrequencyOfWord(String[] wordsList, int listSize, String
currWord)

Note: This is a lab from a previous chapter that now requires the use of a method.

CODE (JAVA):

import java.util.Scanner;

public class LabProgram {


public static int getFrequencyOfWord(String[] wordsList, int listSize, String
currWord)
{
int iFreqReturn = 0;

for (int iLoop=0; iLoop<listSize; iLoop++) {


if (wordsList[iLoop].compareTo(currWord)==0)
{
iFreqReturn++;
}
}
return (iFreqReturn);
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
final int MAX_NUM_WORDS=20;
int N=-1;
while ((N<0) || (N>MAX_NUM_WORDS)) {
N = scanner.nextInt();
}

String words[] = new String[N];

for (int iLoop=0; iLoop<N; iLoop++) {


words[iLoop] = scanner.next();
}

for (int iLoop=0; iLoop<N; iLoop++) {


String curWord = words[iLoop];
int freqCount = getFrequencyOfWord(words,N,curWord);
System.out.println(curWord + " " + freqCount);
}
}
}

You might also like