Creo que lo que deberías hacer (para usar el indexOf) es:
1- Crear un String vacío "aux".
2- Crear un array de int del tamaño de num de letras del alfabeto int cont[28]. NO OLVIDES INICIALIZARLO CON 0 EN TODAS LAS POSICIONES.
3- Recorrer la cadena a analizar. Al encontrarte con el siguiente carácter haces:
Código:
//Pasar el String de un único char a minúsculas
String charActual = charActual.toLowerCase();
//Obtener el índice del char en el String auxiliar, si existe incrementaremos el //contador correspondiente
int indice = aux.indexOf(charActual);
if (indice != -1)//Aun no hemos leído ese caracter
aux += carActual.toLowerCase();
else
cont[indice]++;
Iterando esto para todo el String a analizar tenemos un String con el buffer "aux" y otro con las apariciones correspondientes. Ahora simplemente recorre la cadena original y para cada letra busca su índice correspondiente, y obtén el número de apariciones del array contador.
Un saludo.