Tecnología

Inicio

Cómo determinar el número total de ocurrencias de cada letra del alfabeto en el texto en Java

Cómo determinar el número total de ocurrencias de cada letra del alfabeto en el texto en Java


Contar el número de ocurrencias de cada letra del alfabeto dentro de una cadena de texto es una tarea que resulta ser más compleja de lo que cabría esperar. Sin embargo, el proceso no es necesariamente difícil. Al igual que con cualquier tarea de programación, es necesario descomponerlo en pasos más pequeños, centrándose en cada uno de ellos a su vez. Hay varias maneras de contar las apariciones de caracteres en una cadena, pero el método más sencillo es para explotar el hecho de que los caracteres son variables de tipo primitivas con valores numéricos.

Instrucciones

1 Cree su cadena de texto. Si aún no dispone de una cadena en su programa, utilice el código siguiente para crear una:

Cadena de asunto = "Aquí están algunos personajes dispuestos en una cadena";

Crear una matriz de enteros para mantener un contador para cada letra del alfabeto:

int [] = new int cartas [26];

Crear instancias de sus elementos de la matriz, el establecimiento de cada uno a cero inicialmente:

for (int l = 0; l <letters.length; l ++)
{Cartas [l] = 0; }

2 Crear un bucle para recorrer los caracteres de la cadena. Utilice el siguiente código para recorrer la cadena, el almacenamiento de cada personaje como un valor entero:

for (int c = 0; c <subject.length (); c ++) {
int charNum = subject.charAt (c);
// Procesamiento adicional aquí
}

Este bucle itera una vez para cada letra de la cadena. Cada vez que el cuerpo del bucle se ejecuta, almacena el carácter actual como un entero de tipo primitivo.

3 Llevar a cabo una prueba condicional en el carácter para asegurarse de que es una carta. Añadir la siguiente prueba dentro de su bucle:

if ((charNum> = 'A' && charNum <= 'Z') || (charNum> = 'a' && charNum <= 'z')) {
// Procesamiento adicional aquí
}

Este código realiza dos pares de pruebas. Las primeras pruebas de par que el personaje está entre el caso "A" superior y caracteres "Z". El segundo par pruebas de que el personaje está entre las versiones minúsculas. Si cualquiera de estos pares de prueba devuelve un valor verdadero, el contenido de la sentencia condicional se ejecuta; si el personaje no es una carta, toda la prueba devuelve falso.

4 Llevar a cabo una prueba condicional para comprobar si hay caracteres en minúscula. Su programa puede tratar a las versiones de caja superior e inferior de los caracteres de la misma manera, pero tienen diferentes valores numéricos. Añadir la siguiente prueba dentro de su sentencia if:

si (charNum> = 'a' && charNum <= (char) 'z') charNum- = 32;

Este código indica que el programa utilice los mismos valores numéricos de los caracteres en minúscula como para las versiones superiores de casos, restando la diferencia entre ellos. Incrementar el contador elemento de la matriz para el carácter actual de la siguiente manera:

cartas [charNum-'a '] ++;

Este código indica a Java para agregar uno al contador matriz para el carácter actual, con la letra A en la posición cero y Z en la posición 25. Al restar el valor de la letra mayúscula "A" da el código de la posición correcta.

5 Pruebe sus variables de control. Añadir el siguiente bucle después de su bucle de carácter, dar salida a los valores de cada posición elemento opuesto:

for (int i = 0; i <letters.length; i ++)
{System.out.println ((char) (i + "A") + "" + letras [i]); }

Debería ver cada letra del alfabeto escrito junto con su contador dentro de la cadena.

Consejos y advertencias

  • Piense en las variables de tipo de caracteres primitivos y valores en Java como similares a los números.
  • Si usted tiene una cadena larga en su programa, el bucle tendrá que repetir muchas veces.