String s = " Ciao, come stai? Io molto bene";
String[] r = s.split("[A-Za-z]+");
System.out.println(r.length);
Abbastanza compatto?
Ora la versione
complicata .
Inizia con definire il termine
parola.
Che cosa e' una
parola? Una sequenza di caratteri minuscoli? E i caratteri maiuscoli? Puo' contenere dei numeri? E qualche altro tipo di carattere (ad esempio '_')?
Oppure, in alternativa: che cosa e' un separatore di
parole?
Ovviamente lo spazio, ma la virgola? Il punto e virgola? Il punto di domanda? (ecc).
A partire da questi concetti, devi realizzare quello che nei compilatori si chiama
scanner lessicale: scandisce i caratteri in ingresso, uno alla volta, e genera dei
token, che nel tuo caso saranno le
parole.
Uno
scanner lessicale si realizza mediante un
automa a stati finiti.
Pensavi fosse una cosa banale?
Forse si, forse no