Universidad de Costa Rica
|
|
Para esta tarea programada usted debe enviarme estos archivos:
Encuentre en la red el algoritmo para calcular el código
Soundex de una palabra. Luego, tome un documento guardado en un archivo de texto, y suponga que está separado en párrafos que terminan con el punto '.'
.
Elimine de los párrafos todos los caracteres que no sean alfabéticos, los que son fáciles de detectar usando el método
isLetter()
que es parte de las biblioteca de programación Java.
Use una lista de tipo
ArrayList<>
para meter todas las hileras que conforman un párrafo. Además, paralela a esa lista, use otra que contenga los códigos Soundex de las palabras de ese párrafo. Después de leer todo el documento, grabe los párrafos primero, seguidos de sus códigos Soundex, y separados por 72 iguales. Al final, su programa producirá una
salida similar a ésta:
========================================================================
Las palabras que son muy cortas no tienen Soundex; solo las largitas.
[palabras,P416] [cortas,C632] [tienen,T550] [Soundex,S532] [Solo,S400] [largitas,L623]
========================================================================
No vale la pena calcular el Soundex para palabras de menos de 4 letras.
[vale,V400] [pena,P500] [calcular,C424] [para,P600] [palabras,P416] [menos,M520] [letras,L362]
========================================================================
ArrayList<>
? Es que ni hace falta, porque primero grabo el párrafo y luego lo leo de nuevo y grabo los Soundex.
"palabra"
cuyo Soundex es "P416"
, tu programa debiera poder grabar como respuestas los párrafos que aparecen en el ejemplo de arriba (esta parte del programa queda para un trabajo posterior, que no forma parte de esta tarea).
scanners
: el primero para hallar el número de líneas y el segundo para pasar las líneas al
ArrayList<>
pero al darle compilar no hay problema y al darle run
no pasa nada.
ArrayList<>
es una lista disfrazada, porque incluye el método
get(int index)
que retorna el elemento que está en la posición 'index'
delArrayList<>
.scanners
, pero creo que podés lograr lo mismo leyendo el contenido del archivo 2 veces. Sin embargo, si en la primera lectura almacenás en un ArrayList<>
el contenido del párrafo, no necesitás leerlo de nuevo porque ya lo tenés en memoria.
|
Adolfo Di Mare <adolfo@di-mare.com>.
|