Ci sono 2 errori "tecnici" e 1 concettuale:
- Se la stringa è lunga 5, allora "i" va correttamente da 0 a 4. Solo che all'ultimo indice valido (4) fai str.charAt(i+1) e va "fuori".
- Il secondo parametro di substring è il endIndex ed è esclusivo, non è la lunghezza da prendere.
L'errore concettuale: per eliminare 2 caratteri consecutivi, non lo fai certo con quel ris= str.substring(i,1)
Prova a ragionare meglio e ri-scrivilo proprio. Magari sfrutta la concatenazione delle stringhe per accodare un carattere per volta.