Parole, parole, parole... il Contastorie

E' un problema ricorrente, quello di contare gli elementi uguali in un insieme. Anche recentemente è passato in Lista una argomento analogo.
Così mi sono messo d'impegno e ne è nata una Classe che, con pur impegno didattico, vuole giocare un pochino con le parole di una frase; si tratta di una collection class che, correttamente istanziata, permette di contare il numero di parole presenti nella frase e di stabilire quale sia la parola più lunga o quella più corta.
La Classe WordsCollectionClass è degna di ulteriori migliorie, naturalmente, e ciascuno - dopo aver copincollato il codice sorgente che trovate cliccando sul link in fondo all'articolo - può aggiungere metodi e proprietà a seconda del proprio estro e fantasia.
Per contare le parole all'interno di una frase ho utilizzato le Regular Expressions (ne ho ricavato anche una Tip, recentemente pubblicata su questo sito - grazie VB-T&T!).
La Classe, in quanto collection class, espone, oltre ai metodi tipici delle Collection, anche metodi peculiari quali Occurences (restituisce il n° di ripetizioni di una parola nella frase), Longest e Shortest (restituiscono un insieme comprendente le parole di maggior e minor lunghezza), SubSet (restituisce un sottoinsieme corrispondente al filtro passato in argomento a SubSet).
La WordsCollectionClass, nel suo metodo Add, prevede anche il parametro opzionale booleano Sort, che per default è impostato a False, ma che se viene settato a True consente l'ordinamento alfabetico degli elementi nell'insieme restituito dalla Classe.
Per testare la Classe fornisco anche del codice di test da dare in pasto all'IDE e verificarne il risultato in Finestra Immediata.
Nella procedura test1, si può decidere se la frase passata in argomento deve considerare anche i duplicati o meno, e se deve ignorare i numeri.
La procedura test2 invece dimostra l'utilizzo della funzionalità di sorting automatico degli elementi che costituiscono la frase passata in argomento.

Cliccate su questo link per il codice sorgente.

Buon divertimento... si accettano suggerimenti!

posted @ venerdì 8 febbraio 2008 13:17

Print

Comments on this entry:

No comments posted yet.

Your comment:



 (will not be displayed)


 
 
 
Please add 5 and 7 and type the answer here:
 

Live Comment Preview: