1 import java.io.*;
2 import fi.jyu.mit.ohj2.*;
3 import java.util.StringTokenizer;
4
5
6
11 public class Sanat {
12 private Sana alkiot[] = new Sana[10];
13 private int lkm = 0;
14
15 public void lisaa(String s) {
16 for (int i=0; i<lkm; i++) {
17 if ( alkiot[i].oletko(s) ) {
18 alkiot[i].lisaa();
19 return;
20 }
21 }
22 if ( lkm >= alkiot.length ) return;
23 alkiot[lkm] = new Sana(s);
24 alkiot[lkm].lisaa();
25 lkm++;
26 }
27
28 public void tulosta(OutputStream os) {
29 PrintStream out = Tiedosto.getPrintStream(os);
30 for (int i=0; i<lkm; i++)
31 out.println(alkiot[i]);
32 }
33
34
35 public void kasitteleRivi(String rivi) {
36 String sana;
37 StringTokenizer st = new StringTokenizer(rivi," ,();.:[]{}+-");
38 while ( st.hasMoreTokens() ) {
39 sana = st.nextToken();
40 lisaa(sana);
41 }
42 }
43
44 public void lueTiedosto(String tied) throws IOException {
45 BufferedReader fi = Tiedosto.avaa_lukemista_varten(tied);
46 if ( fi == null ) throw new FileNotFoundException("Ei löydy: " + tied);
47
48 try {
49 String rivi;
50 while ( ( rivi = fi.readLine() ) != null ) {
51 kasitteleRivi(rivi);
52 }
53 } finally {
54 fi.close();
55 }
56 }
57
58
59 public static void main(String[] args) {
60 Sanat sanat = new Sanat();
61 sanat.lisaa("kissa");
62 sanat.lisaa("kissa");
63 sanat.lisaa("koira");
64 sanat.tulosta(System.out);
65 sanat.kasitteleRivi("kissa, istuu kissa puussa");
66 sanat.tulosta(System.out);
67 }
68 }
69