Java - Letra más repetida de un archivo de texto

 
Vista:
sin imagen de perfil

Letra más repetida de un archivo de texto

Publicado por lm90 (2 intervenciones) el 27/01/2015 15:06:51
Buenas a todos,

llevo ya varios días y dándole vueltas al asunto, pero no encuentro la manera de seguir. Se trata de que cogiendo el archivo de texto, sea capaz de imprimir cual es el caracter más repetido.

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
static String directorio = "C:\\Users\\Usuario\\Desktop\\abc.txt"; //Cambiar
    Scanner leer = new Scanner(System.in);
    private final char[] alfa
            = " abcdefghijklmnopqrstuvwxyz.\\,:@?!()<>".toCharArray(); //Carácteres a tener en cuenta
    private int[] freq = new int[alfa.length];
    private int otros;
 
private void LetraRepetida() {
        //System.out.println(directorio);
        iniFreqs(); //Inicializamos la array a 0
        try {
            String cadena;
            FileReader f = new FileReader(directorio);
            BufferedReader b = new BufferedReader(f);
 
            while ((cadena = b.readLine()) != null) {
                System.out.println(cadena + "--> " + cadena.length());
                //Si quito el siguiente for, me imprime cada linea, al escribirlo, solo imprime la primera
                for (int x = 0; x <= 3; x++) {
                    System.out.println(cadena.charAt(x));
                    char letra = cadena.charAt(x);
                    actFreqs(letra);
 
 
                }escFreqs();
            }
 
 
           // escFreqs();
            //b.close();
        } catch (Exception e) {
        }
 
    }
private void actFreqs(char c) {
        int idx = 0;
        while ((idx < (alfa.length - 1)) && (c != alfa[idx])) {
            idx++;
        }
        if (c == alfa[idx]) {
            freq[idx]++;
            //System.out.println(freq[idx]);
        } else {
            otros++;
        }
    }
 
private void escFreqs() { //Nos muestra cuantas veces se repite cada caracter
 
        for (int idx = 0; idx < freq.length; idx++) {
            if (freq[idx] > 0) { //Si la letra no es nula, procede
                System.out.println("Carácter " + alfa[idx]
                        + " aparece " + freq[idx] + " veces");
            }
        }
 
    }


Me falta el comparador para ver qué letra se repite más, pero el problema es que no me pasa a la siguiente linea del archivo de texto
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
sin imagen de perfil

Letra más repetida de un archivo de texto

Publicado por lm90 (2 intervenciones) el 27/01/2015 17:15:45
Bueno, nada, solucionado jaja
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 xve
Val: 758
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Letra más repetida de un archivo de texto

Publicado por xve (345 intervenciones) el 28/01/2015 08:23:32
Hola, podrías compartir como lo has solucionado?
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