import java.io.*; import java.util.*; /** * Programa que determina las palabras que estan en un texto dado y no * estan en un diccionario. * Objetivo: Ilustrar el uso de conjuntos. * @author Amparo Lopez Gaona * @version Primera edicion. */ public class VerificadorSintaxis { /* Metodo para leer las palabras de u n archivo y guardarlas en un conjunto*/ private static Conjunto leerPalabras (Reader in, int t) throws IOException { Conjunto resultado = new Conjunto(t); StreamTokenizer tok = new StreamTokenizer(in); tok.ordinaryChar('.'); tok.lowerCaseMode(true); int c = tok.nextToken(); while (c != StreamTokenizer.TT_EOF) { if (c == StreamTokenizer.TT_WORD) { resultado.agregar(tok.sval); } c = tok.nextToken(); } return resultado; } static public void main (String [] pps) { try { // lee los dos conjuntos de palabras System.out.println("Leyendo el diccionario..."); Conjunto dicc = leerPalabras(new FileReader("dicc.txt"),90000); System.out.println("\n\nLeyendo el texto..."); Conjunto doc = leerPalabras(new FileReader("texto.txt"),100); // elimina las palabras bien escritas doc = doc.diferencia(dicc); // imprime las palabras mal escritas System.out.println("\n\nLas palabras mal escritas son \n"); Iterator e = doc.iterador(); int cont = 0; while (e.hasNext()) { System.out.print(e.next()+ " "); if (cont == 10) { System.out.println(); cont = 0; }else cont++; } } catch (IOException e) { System.err.println("exception:"+e); } } }