import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class WordCount {
public static void main(String[] args) {
// THIS CODE IS FROM THE CHAPTER 11 PART 2 LECTURE SLIDES (with some changes)
// Use this as starter code for Lab 6
// read a file into a map of (word, number of occurrences)
String filename = "InputFile.txt";
Map wordCount = new HashMap();
try (Scanner input = new Scanner(new File(filename))) {
while (input.hasNext()) {
// read the file one word (token) at a time
String word = input.next().toLowerCase();
if (wordCount.containsKey(word)) {
// we have seen this word before; increase count by 1
int count = wordCount.get(word);
wordCount.put(word, count + 1);
} else {
// we have never seen this word before
wordCount.put(word, 1);
}
}
} catch (FileNotFoundException e) {
System.out.println("Could not find file : " + filename);
System.exit(1);
}
/* LAB 6
Write code below to report all words which occur at least 2 times in the Map.
Print them in alphabetical order, one per line, with their counts.
Example:
apple => 2
banana => 1
carrot => 6
If you are unsure how to approach this then review the Ch11 part 2 lecture slides
to review how to work with a Map data structure.
*/
}
}
// InputFile.txt
The quick red fox jumped over the lazy brown dog.
She sells sea shells at the sea shore.
I must go down to the sea again,
to the lonely sea and the sky.
And all I ask is a tall ship
and a star to steer her by.