-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathGenerador2.java
More file actions
80 lines (63 loc) · 2.32 KB
/
Copy pathGenerador2.java
File metadata and controls
80 lines (63 loc) · 2.32 KB
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import java.io.*;
import javafx.scene.control.*;
import javafx.scene.paint.Color;
public class Generador2 extends Generador{
private String[] listaNegra;
public Generador2(File texto, File listaNegra, int limite, Color colorPalabra, Color colorFondo) {
super(texto, limite, colorPalabra, colorFondo);
this.listaNegra=archivoAArreglo(listaNegra);
}
@Override
public void llenarArreglo(){ //aqui tambien se van generando las labels y se guardan en el estado de cada palabra, gracias a la agregacion se pueden recuperar con getLabel y usar en el UI en esta clase
String[] textoSeparado = texto.toLowerCase().split("\\W+"); //pasa todo a minusculas y despues busca todas las no palabras con W y con + junta los que estan seguidos para separador, ver http://regexr.com/3dcpk
if (palabras==null) {
//agregar el primer elemento manualmente
Label etiqueta = new Label(textoSeparado[0]);
palabras = new Palabra[1];
palabras[0] = new Palabra(textoSeparado[0], etiqueta);
}
for (int i=1; i<textoSeparado.length; i++) { //importante el uno para no contar la primera palabra dos veces
String buscar= textoSeparado[i];
if (!checarListaNegra(buscar)) { //solo se hace la operacion por cada palabra si no esta en la lista negra
boolean yaExiste = false;
for (Palabra palabraActual : palabras) {
if (palabraActual.getContenido().equals(buscar)) {
yaExiste = true;
palabraActual.actualizarFrecuencia();
// System.out.println("se actualizo"+ palabraActual.getContenido());
}
}
if (!yaExiste) {
//no se encontro la palabra (String buscar) en el gran arreglo de palabras entonces hay que crearla
agregarPalabra(buscar);
}
}
}
}
public boolean checarListaNegra(String buscar) {
boolean coincidencia=false;
for (String palabra : listaNegra) {
if(palabra.equals(buscar)) {
coincidencia=true;
}
}
return coincidencia;
}
public String[] archivoAArreglo(File input) {
String lectura="";
try {
FileReader fileReader = new FileReader(input);
BufferedReader reader = new BufferedReader(fileReader);
String line = null;
while((line = reader.readLine()) != null) {
lectura+=line;
}
reader.close();
}
catch(IOException ioe) {
ioe.printStackTrace();
}
String[] regresar = lectura.split("\\W+");
return regresar;
}
}