import java.awt.Font; import java.io.File; import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTextArea; /** * * @author Bill Kraynek */ public class CountWords { /** * @param args the command line arguments */ public static void main(String[] args) throws Exception { Scanner fileScanner = new Scanner(new File("src/CountWords.java")); fileScanner.useDelimiter("[^A-Za-z]+"); ArrayList words = new ArrayList<>(); ArrayList counts = new ArrayList<>(); while ( fileScanner.hasNext() ) { String word = fileScanner.next(); if ( !words.contains(word) ) { words.add(word); counts.add(0); }// end if int wordIndex = words.indexOf(word); counts.set(wordIndex, counts.get(wordIndex) + 1); }// end while display(words,counts); Collections.sort(words); display(words,counts); }// end main static void display(ArrayList words, ArrayList counts) { String out = ""; for ( int i = 0; i < words.size(); i++ ) { out += words.get(i) + " appeared " + counts.get(i) + " time" + (counts.get(i)==1?"":"s") + "\n"; }// end for JTextArea outArea = new JTextArea(out,50,40); outArea.setFont(new Font(Font.MONOSPACED,Font.PLAIN,15)); JOptionPane.showMessageDialog(null, new JScrollPane(outArea)); } }