¿Cómo determinar el número total de apariciones de cada letra del alfabeto en un texto en Java?

Escrito por sue smith Google | Traducido por jaime alvarez
  • Comparte
  • Twittea
  • Comparte
  • Pin
  • E-mail
¿Cómo determinar el número total de apariciones de cada letra del alfabeto en un texto en Java?
Las cadenas de Java modelan letras alfabéticas y otros caracteres. (Jupiterimages/Comstock/Getty Images)

Contar el número de apariciones de cada letra del alfabeto en una cadena de texto es una tarea que resulta ser más compleja de lo que se podría esperar. Sin embargo, el proceso no es necesariamente difícil. Al igual que con cualquier tarea de programación, necesitas dividirla en pasos más pequeños, centrándote en cada uno de ellos. Hay varias maneras de contar las apariciones de caracteres en una cadena, pero el acercamiento más sencillo es aprovechar el hecho de que los caracteres son variables de tipo primitivo con valores numéricos.

Nivel de dificultad:
Moderadamente difícil

Otras personas están leyendo

Instrucciones

  1. 1

    Crea tu cadena de texto. Si aún no dispones de una cadena en tu programa, utiliza el siguiente código para crear una:

    String subject = "Aquí están algunos caracteres dispuestos en una cadena";

    Crea un arreglo de enteros para mantener un contador para cada letra del alfabeto:

    int[] letters = new int[26];

    Define tus elementos de la matriz estableciendo cada uno a cero inicialmente:

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

  2. 2

    Crea un bucle para iterar a través de los caracteres de tu cadena. Utiliza el siguiente código para recorrer la cadena, almacenando cada carácter como un valor entero:

    for(int c=0; c<subject.length(); c++) { int charNum = subject.charAt(c); //further processing here }

    Este ciclo se repite 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. 3

    Realiza una prueba condicional en el carácter para asegurarte de que es una letra. Agrega la siguiente prueba dentro de tu bucle:

    if((charNum>='A' && charNum<='Z') || (charNum>='a' && charNum<='z')) { //further processing here }

    Este código realiza dos pares de pruebas. El primero prueba que el carácter se encuentre entre los caracteres de la "A" a la "Z" mayúsculas. El segundo par prueba que el carácter se encuentra entre las versiones en minúsculas. Si cualquiera de estos pares de prueba devuelve un valor verdadero, el contenido de la sentencia condicional se ejecuta; si el carácter no es una letra, toda la prueba devuelve un falso.

  4. 4

    Realiza una prueba condicional para comprobar los caracteres en minúscula. Tu programa puede tratar las versiones mayúsculas y minúsculas de los caracteres de la misma forma, pero tienen diferentes valores numéricos. Agrega la siguiente prueba dentro de tu sentencia if:

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

    Este código le indica al programa que utilice los mismos valores numéricos para los caracteres en minúsculas que para las versiones mayúsculas, restando la diferencia entre ellos. Incrementa el contador de elementos de la matriz para el carácter actual de la siguiente manera:

    letters[charNum-'A']++;

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

  5. 5

    Prueba el contador de tus variables. Agrega el siguiente bucle después de tu bucle de carácter, teniendo como salida los valores de cada posición del contador de elementos:

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

    Debes ver cada letra del alfabeto escrita junto a su contador dentro de la cadena.

Consejos y advertencias

  • Piensa en las variables de tipo de caracteres primitivos y valores en Java como algo similar a los números.
  • Si tienes una cadena larga en tu programa, el ciclo tendrá que repetirse muchas veces.

No dejes de ver

Filtrar por:
  • Mostrar todos
  • Artículos
  • Galerías de fotos
  • Videos
Ordenar:
  • Más relevante
  • Más popular
  • Más reciente

No se encuentran artículos disponibles

No se encuentran slideshows disponibles

No se encuentran videos disponibles