Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Métodos que imprima la palabra mas repetida en un String

Estas en el tema de Métodos que imprima la palabra mas repetida en un String en el foro de Java en Foros del Web. Hola a todos, estoy intentando buscar un método donde dada una frase que entra por teclado imprima la palabra mas repetida dentro de ella, por ...
  #1 (permalink)  
Antiguo 06/12/2013, 13:33
Avatar de Pike  
Fecha de Ingreso: agosto-2008
Ubicación: Por ahí
Mensajes: 251
Antigüedad: 16 años, 3 meses
Puntos: 1
Métodos que imprima la palabra mas repetida en un String

Hola a todos, estoy intentando buscar un método donde dada una frase que entra por teclado imprima la palabra mas repetida dentro de ella, por mas que me rompo la cabeza no doy con ello, he conseguido hacer un programita en que introduces una frase , después una palabra y el resultado es el número de veces que esa palabra se repite en la frase, pero la palabra la introduzco con scanner, y un contador para contar las veces.

Lo que quiero conseguir es que directamente una vez introducida una frase imprima la palabra mas repetida dentro.

UN saludo
  #2 (permalink)  
Antiguo 06/12/2013, 23:43
Avatar de cyrux_cob  
Fecha de Ingreso: febrero-2007
Mensajes: 28
Antigüedad: 17 años, 10 meses
Puntos: 1
Respuesta: Métodos que imprima la palabra mas repetida en un String

Saludos.
Buscando una solución, encontré un código que decía las veces que se repetían las palabras en una frase. Yo lo modifiqué para que devolviera la palabra que más se repetía y en caso que hubiesen más de una con la misma cantidad de repeticiones la diera todas como resultado. Ten en cuenta que en el método split utilicé el espacio como delimitador de las palabras, por lo que si vas a introducir un parrafo con puntos y comas, deberás utilizar una expresión regular según te convenga. Aquí va

Código Java:
Ver original
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6.  
  7. package palabramasrepetida;
  8.  
  9. /**
  10.  *
  11.  * @author cob
  12.  */
  13. public class PalabraMasRepetida {
  14.  
  15.     /**
  16.      * @param args the command line arguments
  17.      */
  18.     public static void main(String[] args) {
  19.         // TODO code application logic here
  20.         PalabraMasRepetida palabra = new PalabraMasRepetida();
  21.         String frase = "baño gato baño gato data baño perro fhgj tsyu gato peRRo";        
  22.         System.out.print("La(s) palabra(s) que más se repite(n) es(son): " + palabra.obtenerLaMasRepetida(frase));
  23.     }
  24.    
  25.     public String obtenerLaMasRepetida(String _frase)
  26.     {
  27.         String palabras [] = _frase.split(" ");
  28.         String palabrasB [] = _frase.split(" ");
  29.        
  30.         int cantidad = palabras.length;
  31.         String resultado = "";
  32.         int contadorMasRepet =  0;
  33.  
  34.         for (int i = 0; i < cantidad; i++) {
  35.                 int contador = 0;
  36. //          resultado += palabras[i];
  37.                 String palabra = palabras[i];
  38.  
  39.                 for (int j = 0; j < cantidad; j++) {
  40.  
  41.                         if (palabra.equalsIgnoreCase(palabrasB[j])){
  42.                                 contador++;
  43.                                 palabras[j] = "";
  44.  
  45.                         }
  46.                 }
  47.  
  48.                 if ((contador > 1)&& (contador > contadorMasRepet)){
  49.                         resultado = palabra;
  50.                         contadorMasRepet = contador;
  51.                         System.out.print(palabras[i]);
  52.                 }
  53.                 else if ((contador > 1)&& (contador == contadorMasRepet)){
  54.                     resultado += " " + palabra;
  55.                 }      
  56.         }
  57.         if (resultado == "")
  58.             resultado = "No hay palabra repetida";
  59.        
  60.         return resultado;
  61.     }
  62. }
  #3 (permalink)  
Antiguo 07/12/2013, 01:21
Avatar de Pike  
Fecha de Ingreso: agosto-2008
Ubicación: Por ahí
Mensajes: 251
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Métodos que imprima la palabra mas repetida en un String

Muchas gracias por tu respuesta y por tu solución, no encontraba la manera.

Etiquetas: palabra, repetida, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:35.