Osservazioni:
1. perché memorizzi il risultato della charAt in una variabile int? Non credo sia un errore ma... che motivo c'è? Puoi utilizzare una variabile char oppure anche nessuna variabile e fare il confronto diretto

2. andbin ti aveva detto una cosa specifica: confronti ogni carattere con i SEGUENTI, quindi il ciclo for esterno deve arrivare fino al penultimo carattere, mentre quello interno deve partire dal carattere successivo (quindi in posizione i+1) ed arrivare fino all'ultimo