// Program demonstrating use of a map to count the frequency of words in a file. import java.io.File; import java.io.IOException; import java.util.Map; import java.util.Scanner; import java.util.TreeMap; public class SimpleWordCounter { public static void main(String[] args) { try { File f = new File("ciaFactBook2008.txt"); Scanner sc; sc = new Scanner(f); // sc.useDelimiter("[^a-zA-Z']+"); Map wordCount = new TreeMap(); while(sc.hasNext()) { String word = sc.next(); if(!wordCount.containsKey(word)) wordCount.put(word, 1); else wordCount.put(word, wordCount.get(word) + 1); } // show results for(String word : wordCount.keySet()) System.out.println(word + " " + wordCount.get(word)); System.out.println(wordCount.size()); } catch(IOException e) { System.out.println("Unable to read from file."); } } }