Ordlengder.java [Last ned]

/*
 * Programmet leser en tekstfil og teller opp forekomsten
 * av hhv korte ord (1-4), halvlange ord (5-10) og lange
 * ord (>10). Resultatene skrives ut både som abslolutte
 * tall og som prosenter.
 */
 
import static javax.swing.JOptionPane.*;
import static java.lang.Integer.*;
import java.io.*;     // Diverse fil-klasser
import java.util.*;   // Spesielt Scanner-klassen
 
public class Ordlengder {
 
  public static void main(String[] args) throws Exception {
 
    String filnavn = showInputDialog("Gi filnavn:");
    File fil = new File(filnavn);
    Scanner leser = new Scanner(fil);
 
    int kort = 0, middels = 0, lang = 0;
    while ( leser.hasNextLine() ) {
      String linje = leser.nextLine();
      String[] ordliste = linje.split(" ");
      for (int i=0; i<ordliste.length; i++) {
         int ordlengde = ordliste[i].length();
         if ( ordlengde <= 4 )
           kort++;
         else
           if ( ordlengde <= 10 )
             middels++;
           else
             lang++;
      }
    }
    leser.close();
    int antOrd = kort + middels + lang;
    if ( antOrd > 0 ) {
      int kortProsent = 100*kort / antOrd;
      int middelsProsent = 100*middels / antOrd;
      int langProsent = 100*lang / antOrd;
 
      String ut = "Resultat." + "\n"
                + "Ant. korte ord: " + kort
                + ", dvs. " + kortProsent + "%" + "\n"
                + "Ant. halvlange ord: " + middels
                + ", dvs. " + middelsProsent + "%" + "\n"
                + "Ant. lange ord: " + lang
                + ", dvs. " + langProsent + "%";
      showMessageDialog(null, ut);
    }
    else
      showMessageDialog(null, "Filen inneholdt ingen ord!");
  }
 
}
Kildekode blir vist ved hjelp av GeSHi.