"Posiciones de palabras"
Publicado por Weiba (1 intervención) el 12/02/2016 15:17:42
Buenas a todos, estoy llevando a cabo un ejercicio en Java en el que se le pasa un texto y te devuelve un HashMap con la palabra y el ArrayList<Integer> con las posiciones en las que se encuentra dicha palabra en el texto.
El problema viene cuando lo ejecuto, no me sale en el array todas las posiciones de esa palabra si no solo la última posición de ella y no veo donde está el problema. Os dejo el código:
Escribo esto: String texto= "en en ee e, en y un een"; System.out.println(ejercicios.generaDiccionario(texto));
Y me devuelve esto: {ee=[6], e=[9], en=[12], y=[15], un=[17], een=[20]}
Gracias de antemano.
El problema viene cuando lo ejecuto, no me sale en el array todas las posiciones de esa palabra si no solo la última posición de ella y no veo donde está el problema. Os dejo el código:
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
public boolean esLetraNumero (char letra){
//Comprobar si el carácter es una letra o número
int asci = (int)letra;
if ((asci >= 97 && asci <= 122)
|| (asci >= 65 && asci <= 90)
|| (asci >= 48 && asci <= 57)){
return true;
}
return false;
}
public HashMap <String, ArrayList<Integer>> generaDiccionario (String texto){
HashMap <String, ArrayList<Integer>>palabras= new HashMap <String, ArrayList<Integer>>();
String palabra ="";
for (int i=0; i < texto.length() ; i++){
if (esLetraNumero(texto.charAt(i))){//Comprobar si el carácter escrito es una letra o número y lo añadimos a palabra
palabra +=texto.charAt(i);
}
else{
if (palabra != ""){ //Cuando acaba la palabra de formarse, creo el ArrayList que contiene las posiciones
ArrayList<Integer> pos = new ArrayList<Integer>();
pos.add(i-palabra.length());
palabras.put(palabra,pos);
palabra ="";
}
}
}
if (palabra != ""){//Creo el ArrayList de la última palabra
ArrayList<Integer> pos = new ArrayList<Integer>();
pos.add(texto.indexOf(palabra));
palabras.put(palabra, pos);
}
return palabras;
}
Escribo esto: String texto= "en en ee e, en y un een"; System.out.println(ejercicios.generaDiccionario(texto));
Y me devuelve esto: {ee=[6], e=[9], en=[12], y=[15], un=[17], een=[20]}
Gracias de antemano.
Valora esta pregunta


0