Cita:
Iniciado por Xerelo ArrayIndexOutOfBoundsException indica que estás intentando leer una posición del array mayor que las que existen.
Tu último caracter no es ' ', y tu algoritmo intenta acceder a la siguiente posición.
Parece que traduces para un texto de más de una palabra y como se sabe de palabra en palabra hay un espacio en blanco; pero se supone que si tu texto es de una sola palabra fallaría ya que no hay espacios en blaco y cuando es la última palabra áun sigue prosiguiendo en busca de más palabras lo que da la excepción. Bueno eso es lo que puedo ver en tu implementación.