La verdad es que no te has expresado con mucha claridad, pero al leer el error creo que sé dónde está el problema.
Supongo que te refieres a los métodos de la clase String. Se te está indicando que el índice indicando está fuera de rango, por lo que me temo que no estás tomando en cuenta que al usar el método
charAt de la clase String, la primera posición parte del número cero. Lo primero que debes saber es que el método
length de la clase String devuelve el número de letras que tiene la variable objeto que hayas creado, cuya primera letra parte del número uno, pero al usar el método
charAt la primera letra que corresponde a la indicada por length es la de la posición cero.
Supongo que estás haciendo algo así: (Imaginando que tu nombre es Juan)
Código:
String mi_nombre = "Juan";
int mi_ultima_letra = mi_nombre.length();
System.out.println("Mi nombre tiene: " + mi_nombre.charAt(mi_ultima_letra);
Aquí es dónde te digo que
charAt comienza desde la posición cero, por lo que la última posición de tu nombre sería la número tres, pero el método length le ha indicado que hay cuatro letras por lo que charAt está buscando la posición cuatro, que lógicamente no existe. De ahí viene tu error.
Lo que debes de hacer es modificar la última parte de la última línea del código ejemplo que te puse restándole una unidad:
Código:
System.out.println("Mi nombre tiene: " + mi_nombre.charAt(mi_ultima_letra - 1);
De esa manera puedes modificar el nombre que le hayas indicado a la variable objeto que siempre te mostrará la última letra correctamente.