Java - Saber cuántas veces se repiten letras

   
Vista:
Imágen de perfil de Antonio

Saber cuántas veces se repiten letras

Publicado por Antonio (15 intervenciones) el 24/04/2016 23:04:36
Hola, buenas. Ando buscando la forma de saber cuántas letras del abecedario se repiten de cualquier archivo de texto que se lea en el programa. Ya hice la parte lectora del archivo, pero no se cómo contar las letras e imprimir el número de veces que se repite cada una.

Entonces, lo que tengo hasta ahora es esto:
roKYoHw

*La idea es examinar el archivo (Hecho)
*Después Leerlo e imprimirlo (Hecho)
*Lo tercero es crear la frecuencia de letras, osea, cuántas veces sale "a", cuantas "b", etc. e imprimirlo en un JOptionPane o en una gráfica.(No Hecho)

Alguna sugerencia para llevar acabo la tercera parte??

Gracias de antemano !

Acá abajo el programa por si es necesario una revisió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

Saber cuántas veces se repiten letras

Publicado por Tomas (65 intervenciones) el 24/04/2016 23:49:27
Lo unico que se me ocurre ahora es un metodo que cada vez que leas una linea te compruebe que letra es y sume 1.
int a,b,c,d etc... = 0;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public void contarLetras(String frase){
		String frase="La linea leida";
		char[] arrayChar = frase.toCharArray();
		for(int i=0; i<arrayChar.length; i++){
 
 switch(i){
case i == a
a++;
break;
case a==b
b++
break;
 
 etc.
 
default
break;
}
}
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 Antonio

Saber cuántas veces se repiten letras

Publicado por Antonio (15 intervenciones) el 25/04/2016 08:09:22
Pero no es así, osea, no se leerá un String declarado, lo que se debe leer es cualquier txt que tenga en la pc...
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

Saber cuántas veces se repiten letras

Publicado por Andrés (231 intervenciones) el 26/04/2016 22:56:19
Tienes que contabilizar caracateres por línea:

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
38
39
import java.util.HashMap;
import java.util.Map;
 
public class Contabilizador {
 
    private Map<String, Long> ocurrencias; //Map porque son... UNICODE!
 
    public Contabilizador() {
 
        ocurrencias = new HashMap<String, Long>();
 
    }
 
    public void contabiliza(String linea) {
 
        for(int i=0;i<linea.length();i++) {
 
            if(null == ocurrencias.get(""+linea.charAt(i))) {
 
                ocurrencias.put(""+linea.charAt(i),1L);
 
            }else {
 
                Long valor = ocurrencias.get(""+linea.charAt(i));
                valor++;
                ocurrencias.put(""+linea.charAt(i),valor);
            }
 
        }
 
    }
 
    public Map<String, Long> getOcurrencias() {
 
        return ocurrencias;
 
    }
 
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
 
public class Main {
 
    public static void main(String[] args) {
 
        System.out.println("Hello World!");
        Contabilizador contabilizador = new Contabilizador();
        contabilizador.contabiliza("Hello World!");
        Map<String, Long> ocurrencias = contabilizador.getOcurrencias();
 
        Set<String> keys = ocurrencias.keySet();
        Iterator<String> iterator = keys.iterator();
        String key = null;
 
        while(iterator.hasNext()) {
            key = iterator.next();
            System.out.println("key: " + key + " value: " + ocurrencias.get(key));
        }
    }
}
Sin-tisssstulo
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 Antonio

Saber cuántas veces se repiten letras

Publicado por Antonio (15 intervenciones) el 27/04/2016 04:37:37
S{i, lo entiendo, pero eso es de un String declarado, ahora si quiero hacerloo desde un txt cualquiera? asícomo lo muestro arriba?.

Mira, intenté hacer algo como esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
try{
        FileReader fr = new FileReader(cajaTexto.getText());
        BufferedReader br = new BufferedReader(fr);
        String texto;
        while((texto=br.readLine())!=null){
           System.out.println(texto);
        }
        int c = 0;
        for(int i=0;i<texto.length();i++) {
          if ((texto.charAt(i)=='a')){
            c++;
  }
    System.out.println(  "La letra (a) se repite " + c + " veces en el archivo.");
}
 
        }catch(Exception ex){}
    }

El problema es que ahí se hace un ciclo sólo para la letra "a", tendría que hacer un ciclo para cada letra?
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

Saber cuántas veces se repiten letras

Publicado por Andrés andres.mella.romero@gmail.com (231 intervenciones) el 27/04/2016 09:19:28
Por cada línea que obtienes del archivo, cuentas los caracteres.

Te puede quedar algo así: chart
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Antonio

Saber cuántas veces se repiten letras

Publicado por Antonio (15 intervenciones) el 27/04/2016 19:50:36
Ya veo, esplendido amigo !, debo hacer algunos cambios con hilos pero será de muchísima utilidad. Ahora puedo seguirle, muchas gracias !!!!
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