Java - Contador de caracteres separados

 
Vista:

Contador de caracteres separados

Publicado por Toni (1 intervención) el 20/11/2018 00:49:36
Estoy aprendiendo Java:

Me piden que inserte una frase y que de esa frase se muestre por pantalla la cantidad de letras que hay de ese tipo.


Aqui el codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
String Frase= "hola que tal esta tothom";
char[] Abecedario= {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
        'j', 'k', 'l', 'm', 'n','o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
int[] cantidad=new int[Abecedario.length];
 
for (int i=0; i<Abecedario.length; i++) {
    for (int j=0;j<Frase.length(); j++){
        if (Abecedario[i]==Frase.charAt(j)) {
            cantidad[i]=cantidad[i]+1;
        }
    }
 
}
System.out.println(Arrays.toString(Abecedario));
System.out.println(Arrays.toString(cantidad));
for (int i=0; i<cantidad.length; i++)
    if (cantidad[i]>0) {
        System.out.print(Abecedario[i]);System.out.print(" "+cantidad[i]+" Ocurrències\n");
    }
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

Contador de caracteres separados

Publicado por Billy Joel (876 intervenciones) el 20/11/2018 15:15:57
He corrido tu código y si funciona. Yo viendo la funcionalidad requerida en el enunciado también lo quice hacer pero de una forma un tanto mas avanzada haciendo uso de los Maps

A continuación otra forma de hacerlo
1
2
3
4
5
6
7
8
9
10
public void caracteresRepetidos(String frase) {
    Map<Character, Integer> contenido = new HashMap();
    for (char c : frase.toCharArray()) {
        contenido.put(c, (contenido.containsKey(c) ? (contenido.get(c) + 1) : 1));
    }
    System.out.println("La frase " + frase + "contiene los siguientes caracteres");
    contenido.forEach((k, v) -> {
        System.out.println(k + ": " + v);
    });
}

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