
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.
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
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


0