Mmm no , ci sono un po' di cose che non vanno..
che significa?il nome delle variabili dove sta?Avresti dovuto scrivere
codice:
char interrogativo = '?', esclamativo = '!';
oppure saltare l'utilizzo di tali variabili e procedere (come tu hai fatto dopo) confrontando direttamente con i caratteri '?' e '!'..
codice:
ultimoCarattere = frase.lastIndexOF();
Eh??Ultimo indice nella stringa "frase" di cosa?A parte che non dovrebbe nemmeno compilarti perchè il metodo è nella forma lastIndexOf (String s) oppure nelle altre varianti con altri parametri in ingresso..
Ma poi non ti converrebbe prendere direttamente l'ultimo carattere con
codice:
int lunghezzaFrase = frase.length ();
char carattereFinale = frase.charAt (lunghezzaFrase - 1);
?E' più semplice e intuitivo no?
Poi il resto mi sembra che almeno a livello di logica tu ci sia arrivata anche se il codice è sicuramente migliorabile 