para responder lo tuyo....
Si sustituimos "TODOS SON IGUALES" por "ToDoS s0n iguales"
¿Que pasaria?
reconoceria solo los caracteres en mayuscula...
eso se soluciona utilizando el metodo .toUpperCase
y la explicacion para el que no entienda paso a decirla de nuevoo...
lo que mi amigo ripr quiso decir es que
dentro de contadorLetras[let-'A'] se produce una resta donde let es el minuendo, el sustraendo es la A y para restar se representa A como caracter ascii de valor 65
y let va a contener una letra que va a ir variando segun recorra desde 0 al final todo el array que se formo con el metodo .toCharArray(); y para la resta tmb se transforma en caracter ascii
entonces queda una resta simple matematica dentro de los corchetes de contador Letras[]
al producir esta resta el resultado que nos proporciona coincide justo con el casillero dentro del array que deberia representar a la letra correspondiente
Ej:
si la letra dentro de let=T
contadorLetras['T' - 'A']
si pasamos todo a caracteres ascii numericos queda asi
contadorLetras[84 - 65] resultado de esta resta es
contadorLetras[19]++; ---- y asi quda el codigo, y los signos "++" lo que hacen es incrementar el valor una unidad numerica, osea de 1 en 1, en este caso el lugar 19 dentro del array incrementaria
su valor actual (que de momento es cero) a 1, 0 + 1 = 1, y si tuviese otro valor ej 5, incrementaria ese valor en 1 mas... osea 6
ampliando esto si subimos en el codigo nos encontramos con la variable contadorLetras[26]; pero esta vacia completamente, quiere decir que esos 26 lugares reservador inicialmente tienen valor 0 (cero)... entonces
contadorLetras[19]++; este codigo lo que hace es al lugar 19 dentro del array de 26 contenido dentro de contadorLetras[] le proporciona un valor de 1, porque antes valia 0, entonces 0++ es 1;
finalizando el post decimos que si contamos desde 0 a 25 que serian los 26 lugares contenidos dentro del array contadorLetras[26] la letra T se encontraria en el lugar 19 por tanto...
decimos que la letra T esta una sola ves repetida en la frase... si hubiese mas T, el codigo llegaria al mismo resultado contadorLetras[19]++; lo que transformaria ese 1++ en un 2; por tanto serian dos T
MUCHAS GRACIAS RIPR LAMENTO VOLVERLO A EXPLICAR, TU EXPLICACION SE ENTIENDE EXCELENTE PERO ADICIONO UNA EXPLICACION MAS SIMPLISTA POR SI ALGUIEN NO PUDIESE O
NO ESTUVIESE ACOSTUMBRADA MUCHO A JAVA DE MOMENTO, ADEMAS DE QUE SIEMPRE DOS EXPLICACIONES SON MEJORES QUE UNA... ESPERO ESTO LE SIRVA A ALGUIEN TANTO COMO A MI
SALUDOS