Contar el Número de Veces que Aparece una Palabra en una Frase en Java

Hola a todos!!!! ¿Os gustaría poder saber cuántas veces aparece una palabra en un texto? Espero que sí, porque eso es lo que hace nuestro programa que os comparto.
El programa contará cuántas veces aparece la palabra que hemos introducido en el texto que también introducimos nosotros mismos por teclado. El programa además no tiene en cuenta de si el inicio de la palabra está escrita en mayúsculas o minúsculas ya que si no lo hiciera, si queremos buscar, por ejemplo, la palabra caballo, no contaría la palabra al inicio de frase, es decir, después del punto porque caballo no sería igual a Caballo.
Pasemos a ver el código:


import java.util.StringTokenizer;

import java.util.Scanner;
class PalabrasRepetidas{

    public static void main(String[] args) {

        Scanner miScanner = new Scanner(System.in);//Creamos un objeto de la clase //Scanner para leer por teclado

        System.out.println("Introduce una frase: ");

        String frase = miScanner.nextLine().toLowerCase();//Se almacena el texto 
//introducido en la variable frase y pasa el texto todo a minúsculas

        StringTokenizer tok = new StringTokenizer(frase);//Se crea el objeto tok
//de la clase StringTokenizer

        String palabraBuscar;//Variable que almacenará la palabra que queramos
//bucar

        int contador = 0;//Variable que almacena el número de veces que aparece
//la palabra

        System.out.print("Introduce la palabra a contar: ");

        palabraBuscar = miScanner.nextLine().toLowerCase();//Se introduce la
//palabra a buscar pasándola toda a minúscula

       
/*
Bucle while que se repetirá mientras que existan tokens. Dentro del bucle se crea un condicional if que compara si el elemento es igual a la palabra a buscar. En caso de que así se el contador aumentará en uno.
*/
        while(tok.hasMoreTokens()){

            if(tok.nextElement().equals(palabraBuscar)){

                contador++;

            }

        }

        System.out.println("La frase " + frase + " contine " + contador +

                " veces la palabra " + palabraBuscar);

    }

}


La clase StringTokenizer posee varios métodos de los cuales hemos utilizado 2:

  • El método hasMoreTokens(), es un método que devuelve un valor booleano (true o false). Mira si en la frase o texto hay más tokens. En este método los tokens comienzan y finalizan cuando hay un espacio, por lo tanto cada palabra es un token.
  • El método nextElement() que se utiliza para analizar el siguiente token. En este caso también se utiliza el método equals() para comparar de que el elemento (token) que se está analizando es igual a la palabra introducida por el usuario.
Espero que os haya servido el programa y si tenéis alguna duda o sugerencia dejad un comentario.

No hay comentarios:

Publicar un comentario

Privacy Policy for Broma Detector de Mentiras con Huella

Privacy Policy Privacy Policy Broma detector de mentiras con huella app as ...