/** * classe di prova della classe Text * * @author Adriano Luchetta * @version 20-Nov-2004 * @version 10-Nov-2005 */ import java.io.FileReader; import java.io.FileNotFoundException; import java.io.IOException; import java.io.PrintWriter; import java.util.Scanner; public class TextTester { public static void main(String[] args) throws IOException { // verifica degli argomenti sulla riga di comandi if (args.length < 1) { System.out.println("uso: $java TextTester filename"); return; } // Stampa testo originale Scanner in = new Scanner(new FileReader(args[0])); System.out.println("\n*** TESTO ORIGINALE ***\n"); while (in.hasNextLine()) System.out.println(in.nextLine()); in.close(); in = new Scanner(new FileReader(args[0])); in.useDelimiter("[ ,.;:?!\\-()\n]+"); // per introdurre il carattere '-' si deve scrivere \\- //lettura file e memorizzazione nel contenitore di testo Text text = new Text(); while (in.hasNext()) text.add(in.next()); in.close(); // ordinamento lessicografico crescente delle parole del testo text.sort(); int originalTextWordNumber = text.size(); // eliminazione parole doppie Text noRepetitionText = new Text(); String current = null; if(!text.isEmpty()) { current = text.removeLast(); noRepetitionText.add(current); } while (!text.isEmpty()) { String next = text.removeLast(); if (next.compareTo(current) != 0) { noRepetitionText.add(next); current = next; } } // stampa delle parole in ordine lessicografico crescente System.out.println("\n***STAMPA DELLE SINGOLE OCCORRENZE IN ORDINE LESSICOGRAFICO***"); System.out.println("Numero parole nel testo originale: " + originalTextWordNumber); System.out.println("Numero parole non ripetute: " + noRepetitionText.size() + "\n"); while (!noRepetitionText.isEmpty()) System.out.println(noRepetitionText.removeLast()); } }