40 lines
1.3 KiB
Java
40 lines
1.3 KiB
Java
// 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<String, Integer> wordCount = new TreeMap<String, Integer>();
|
|
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.");
|
|
}
|
|
}
|
|
}
|