Java - Ayuda Palabras Repetidas

 
Vista:

Ayuda Palabras Repetidas

Publicado por Gere (1 intervención) el 06/04/2020 21:45:43
Buenas tardes quería saber si alguien podía ayudarme con un ejercicio de java,el ejercicio trata de ingresar una n cantidad de nombres por teclado y que muestre la cantidad de veces que aparece cada nombre repetido eso lo pude hacer pero me muestra todas las repeticiones por ejemplo:
Lucas 1 vez
Diego 1 vez
Martin 2 veces
Nicolas 3 veces

Y yo lo que necesito hacer es que me muestre solo los que más se repiten no todos.
Dejo el código

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package nombres;
import java.util.Scanner;
import java.util.*;
import java.util.Arrays;
import java.util.ArrayList;
 
 
public class Main_Class  {
 
     public static void main(String[]args){
 
         Scanner teclado = new Scanner(System.in);
 
            System.out.println("¿Cuantos nombres va a introducir? : ");
            int v= teclado.nextInt();
            int i;
            String palabras[]= new String[v];//creacion de tu arreglo de Strings de tamaño v
            for(i=0;i<v;i++){
            System.out.println("\nIntroduzca nombre");
            palabras[i]=teclado.next();//ya no es .nextInt()
            }
         ArrayList datos = new ArrayList<>();
         for (String palabra : palabras) {
             String minus = palabra.toLowerCase();
             int contador = 0;
             if(!datos.contains(minus)){
                for (String demas : palabras) {
                    if(demas.toLowerCase().equals(minus)){
                        contador++;
                    }
                }
                datos.add(minus);datos.add(contador);
                System.out.println(minus+": "+contador+((contador == 1)?" vez":" veces"));
             }
         }
     }
}
Recién comienzo en java. Espero que puedan ayudarme Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda Palabras Repetidas

Publicado por Rodrigo (623 intervenciones) el 07/04/2020 12:31:35
Sugiero usar un Map, con claves de tipo string y valor entero.
A medida que ingresas valores, insertas en el map, si el string no estas, lo creas con valor 1.
Si ya esta, le incrementas el valor.
Luego recorres 1 vez el map para encontrar el maximo valor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda Palabras Repetidas

Publicado por Billy Joel (876 intervenciones) el 11/04/2020 02:40:12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
 
public class Main_Class {
 
    public static void main(String[] args) {
        Scanner teclado = new Scanner(System.in);
        System.out.println("¿Cuantos nombres va a introducir? : ");
        int v = teclado.nextInt();
//        String palabras[] = new String[v];//creacion de tu arreglo de Strings de tamaño v
        Map<String, Integer> nombres = new HashMap();
        String nombre;
        for (int i = 0; i < v; i++) {
            System.out.print("Introduzca nombre: ");
            nombre = teclado.next();
            nombres.put(nombre, nombres.containsKey(nombre) ? nombres.get(nombre) + 1 : 1);
//            palabras[i] = teclado.next();//ya no es .nextInt()
        }
//        for (Map.Entry<String, Integer> e : nombres.entrySet()) {
//            System.out.println(e.getKey() + ": " + e.getValue());
//        }
        nombres.forEach((k, valor)->{
            System.out.println(k + ": " + valor);
        });
    }
}

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar