All pastes #965246 Raw Edit

Mine

public java v1 · immutable
#965246 ·published 2008-03-31 21:10 UTC
rendered paste body
//counts the words in a text file... //by Razii with some hints from //wlfshmn from #java on IRC Undernet import java.io.*;import java.util.*;import java.nio.*; import java.nio.channels.*;public final class WordCount3{ private static final Map<String, int[]> dictionary =         new HashMap<String, int[]>(16000); private static int tWords = 0; private static int tLines = 0; private static long tBytes = 0;  public static void main(final String[] args) throws Exception {  System.out.println("Lines\tWords\tBytes\tFile\n");    //TIME STARTS HERE   final long start = System.currentTimeMillis();  for (String arg : args)  {   File file = new File(arg);   if (!file.isFile())   {    continue;   }      int numLines = 0;   int numWords = 0;   long numBytes = file.length();   ByteBuffer in = new FileInputStream(arg).getChannel().map(         FileChannel.MapMode.READ_ONLY, 0, numBytes);     in.rewind();         	    StringBuilder sb = new StringBuilder();        boolean inword = false; 	        for (int i = 0; i < numBytes; i++)    {      	char c =  (char)in.get();      	if (c == '\n') 	        numLines++; 	    else if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z')	    {	    	sb.append(c); 	    	inword = true;      		    }	    else if (inword)        {        	numWords++;        	String s = sb.toString();        	int[] count = dictionary.get(s);        	if (count != null)        	  { count[0]++;}        	else             {dictionary.put(s, new int[]{1});}                 sb.delete(0, sb.length());             inword = false;        }           }       	     System.out.println( numLines + "\t" + numWords + "\t" + numBytes + "\t" + arg);   tLines += numLines;   tWords += numWords;   tBytes += numBytes;  }    TreeMap<String, int[] > sort = new TreeMap<String, int[]> (dictionary);    //TIME ENDS HERE   final long end = System.currentTimeMillis();    System.out.println("---------------------------------------");  if (args.length > 1)  {  System.out.println(tLines + "\t" + tWords + "\t" + tBytes + "\tTotal");   System.out.println("---------------------------------------");  }  for (Map.Entry<String, int[]> pairs : sort.entrySet())  {   System.out.println(pairs.getValue()[0] + "\t" + pairs.getKey());  }     System.out.println("Time: " + (end - start) + " ms"); }}