import java.io.*; import java.util.*; /** *Trida Text *analyzuje a pracuje s textem *@author M.Kales */ public class Text{ public String soubor; public Strom strom; public BufferedReader bfr; public String chyba; public PrintWriter pw; public char pismeno; private static String platneZnakySlova = "[^A-Za-z켾]+"; public int maxCetnost; public PrvekCetnost[] cetnost; public PrvekCetnost nynejsi; public Prvek ukazatel; public String[] Vysledky, pomoc; /** *konstruktor tridy Text *@param bfr otevreny vstupni soubor */ public Text(BufferedReader bfr){ this.strom=zpracujText(bfr); maxCetnost=0; cetnost = new PrvekCetnost[0]; } /** *metoda na zpracovani textu, *projde cely vstupni soubor, rozdeli na slova a prida do BVS *@param text otevreny vstupni soubor *@return zpracovany text v BVS */ public Strom zpracujText(BufferedReader text){ try{ String radka, slovo; int a=0; int b=0; Strom textStrom=new Strom(); String[] slova; while((radka=text.readLine())!=null){ radka=radka.toLowerCase(); slova = radka.split(platneZnakySlova); for (int i = 0; i < slova.length; i++) { slova[i] = slova[i].trim().toLowerCase(); if (slova[i].length() != 0) { textStrom.pridejPrvek(new Prvek(slova[i])); } } } return textStrom; } catch (Exception e) { System.out.println("Chyba ve vstupnim souboru!!!"); e.printStackTrace(); } return null; } /** *metoda pro vypis prvku abecedne s cetnosti, *vypisuje do HTML */ public void SeraditAbecedne(){ try{ pw = new PrintWriter(new BufferedWriter(new FileWriter("out_"+soubor+".html"))); pw.println("" + soubor + ""); inOrder(strom.koren); pw.println("
etnostSlovo
"); pw.close(); } catch(IOException e){ } return; } /** *metoda pro prohledavani BVS - inOrder *vypisuje do HTML (podle abecedy) *@param pointer prvek od ktereho zacne prohledavani */ public void inOrder(Prvek pointer) { if (pointer == null){ return; } inOrder(pointer.vlevo); pismeno=pointer.hodnota.charAt(0); pw.println("" + pointer.cetnost + "" + pointer.hodnota + ""); inOrder(pointer.vpravo); } /** *metoda pro vypis prvku podle cetnosti, * prevadi prvky z BVS do Hash tabulky *vypisuje do HTML */ public void SeraditCetnost(){ inOrderCetMax(strom.koren); cetnost = new PrvekCetnost[maxCetnost]; inOrderCetnost(strom.koren); try{ pw = new PrintWriter(new BufferedWriter(new FileWriter("out_Cetnost_"+soubor+".html"))); pw.println("" + soubor + ""); for (int i=maxCetnost-1; i>=0; i--){ if (cetnost[i]!=null){ nynejsi=cetnost[i]; while (nynejsi!=null){ pw.println(""); nynejsi=nynejsi.dalsi; } } } pw.println("
etnostSlovo
" + nynejsi.prvek.cetnost + "" + nynejsi.prvek.hodnota + "
"); pw.close(); } catch(IOException e){ } return; } /** *metoda pro prohledavani BVS - inOrder *zjistuje nejvetsi cetnost *@param pointer prvek od ktereho zacne prohledavani */ public void inOrderCetMax(Prvek pointer) { if (pointer == null){ return; } inOrderCetMax(pointer.vlevo); if (maxCetnost