Ciao a tutti

devo implementare un piccolo analizzatore lessicale e sinceramente essendo il mio primo progettino non so bene da che parte iniziare.
L'analizzatore deve avere in input un testo organizzato per linee e deve:
1)contare caratteri e linee
2)contare il numero di parole
3)contare / individuare parole palindromi
4) ricerca di un eventuale parola chiave e magari sostituzione.
Fino ad ora procedendo senza un ordine preciso
ho risolto alcuni punti (anche se forse non in ottica object oriented)
per quanto riguarda il contare le linee ho trovato dei metodi parecchio utili
nella classe Scanner (hasNextLine

) mentre per quanto riguarda le parole palindromi ho realizzato questo:
Codice:
public boolean verificaPalindrome( char[] parola ) //uso il metodo to.CharArray
{
int i = 0;
int j = parola.length -1 ;
while ((parola[i] == parola[j]) && (i<j))
{
i++;
j--;
}
if(i >= j)
return true;
else
return false;
}
Ancora non mi è chiaro quale struttura dati utilizzare per memorizzare le parole dal momento che queste potrebbero essere viste come Stringhe
ma anche array di char...

. La mia idea era quella di riuscire a memorizzare le parole (eliminando gli spazi bianchi) in stringhe per poi utilizzare il metodo toCharArray e successivamente effettuare le operazioni di ricerca (parole chiave , palindromi ecc ecc).
Ringrazio anticipatamente per qualsiasi consiglio