Java - No se como realizar codigo,Gracias.

 
Vista:

No se como realizar codigo,Gracias.

Publicado por Pablo (9 intervenciones) el 26/04/2019 14:08:10
no se como realizar un codigo en java. Tengo un String o ArrayList llamando Poderes donde estan dentro : Arco,Inteligencia,fuerza y pocima. Otro String o ArrayList llamado Miguel con : inteligencia,paciencia. Y por ultimo uno llamado Agus con : pocima,inteligencia y invisibilidad.

Tengo que comparar el primer string sobre los otros dos y debe salir esto por pantalla:

Arco-Apariciones : 0, Fuerza-Apariciones : 0, Inteligencia-Apariciones : 2, Pocima-Apariciones : 1
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 Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

No se como realizar codigo,Gracias.

Publicado por Billy Joel (876 intervenciones) el 26/04/2019 21:11:26
Yo entendí que tienes 3 variables como esto:
1
2
3
String poderes = "Arco,Inteligencia,Fuerza,Pocima";
String miguel = " inteligencia,paciencia";
String agus = "pocima,inteligencia,invisibilidad";

Entonces quieres saber cuantas veces se repite las palabras que están dentro de las variables....
Por ejemplo Inteligencia se repite 3 veces. Si eso es así entonces yo utilizaría un Map con la plabra como llave y las apariciones como valor
1
Map<String, Integer> apariciones = new HashMap();


Lo que sigue es crear una rutina (método) que me permita realizar el conteo de palabras por cada variable.
1
2
3
4
5
6
7
8
9
10
11
public static void contar(Map<String, Integer> apariciones, String palabras){
    for(String palabra : palabras.split(",")){
        palabra = palabra.trim().toUpperCase();
//        if(apariciones.containsKey(palabra)){
//            apariciones.put(palabra, apariciones.get(palabra) + 1);
//        } else {
//            apariciones.put(palabra, 1);
//        }
        apariciones.put(palabra, apariciones.containsKey(palabra) ? apariciones.get(palabra) + 1 : 1);
    }
}

El código que aparece comentado arriba es lo que está pasando en la línea apariciones.put(palabra, apariciones.containsKey(palabra) ? apariciones.get(palabra) + 1 : 1);


Entonces con el método contar definido lo que sigue es utilizarlo.
1
2
3
contar(apariciones, poderes);
contar(apariciones, miguel);
contar(apariciones, agus);

Y entonces imprimimos el resultado
1
2
3
apariciones.forEach((k,v)->{
    System.out.println(k + ": " + v);
});

El resultado con las variables como están es:
1
2
3
4
5
6
FUERZA: 1
ARCO: 1
INVISIBILIDAD: 1
INTELIGENCIA: 3
POCIMA: 2
PACIENCIA: 1

Espero poder haber resuelto tu duda, sino solo escribe
Saludos!!
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