| // $Id: wc.java,v 1.2 2004-06-20 08:39:47 bfulgham Exp $ |
| // http://www.bagley.org/~doug/shootout/ |
| // with help from Dirus@programmer.net |
| |
| import java.io.*; |
| import java.util.*; |
| import java.text.*; |
| |
| // this program modified from: |
| // http://cm.bell-labs.com/cm/cs/who/bwk/interps/pap.html |
| // Timing Trials, or, the Trials of Timing: Experiments with Scripting |
| // and User-Interface Languages</a> by Brian W. Kernighan and |
| // Christopher J. Van Wyk. |
| |
| public class wc { |
| public static void main(String[] args) { |
| int nl = 0, nw = 0, nc = 0; |
| |
| try { |
| byte[] buff = new byte[4096]; |
| boolean inword = false; |
| int length; |
| char c; |
| |
| while ((length = System.in.read(buff)) != -1) { |
| nc += length; |
| for(int i = 0; i < length; i++) { |
| c = (char)buff[i]; |
| if (c == '\n') |
| ++nl; |
| if (Character.isWhitespace(c)) |
| inword = false; |
| else if (inword == false) { |
| ++nw; |
| inword = true; |
| } |
| } |
| } |
| } catch (IOException e) { |
| System.err.println(e); |
| return; |
| } |
| System.out.println(Integer.toString(nl) + " " + |
| Integer.toString(nw) + " " + |
| Integer.toString(nc)); |
| } |
| } |