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

   
Vista:

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
información
Otras secciones de LWP con contenido de Java
- Código fuente de Java
- Cursos de Java
- Temas de Java
- Chat de Java
información
Códigos de Java
- Paint
- Como utilizar un TitledBorder en javax
- Chat

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

Letra más repetida de un archivo de texto

Publicado por xve (261 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