Write a method called wordLengths that accepts a Scanner for an input file as its parameter. Your method should open the given file, count the number of letters in each token in the file, and output a result diagram of how many words contain each number of letters. For example, consider a file containing the following text:
Before sorting:
13 23 480 –18 75
hello how are you feeling today
After sorting:
–18 13 23 75 480
are feeling hello how today you
Your method should produce the following output to the console. Use tabs so that the stars line up:
1: 0
2: 6 ******
3: 10 **********
4: 0
5: 5 *****
6: 1 *
7: 2 **
8: 2 **
Assume that no token in the file is more than 80 characters in length.
public static void wordLengths(Scanner infile)
throws FileNotFoundException
{
int[] sizes = new int[100];
int maxSize = 0;
String token;
while(infile.hasNext())
{
token = infile.next();
sizes[token.length()]++;
if(token.length() > maxSize)
maxSize = token.length();
}
for(int s = 1; s <= maxSize; s++)
{
System.out.print(s + ": " + sizes[s] + " ");
for(int j = 0; j < sizes[s]; j++)
{
System.out.print("*");
}
System.out.println();
}
}