Ayúdame a hacer una pregunta de JAVA
¡¡Primero déjame mostrarte los resultados del siguiente programa!! Palabra: academic Número de ocurrencias: 1 Longitud de palabra: 8
Palabra: y Número de ocurrencias: 1 Longitud de palabra: 3
Palabra: aplica Número de ocurrencias: 1 Longitud de palabra: 7
Palabra: correctamente Número de ocurrencias: 1 Longitud de palabra: 9
Palabra: número de excepción de ocurrencias: 1 palabra Longitud: 9
Palabra: frecuencia Número de ocurrencias: 1 Longitud de palabra: 9
Palabra: capta Número de ocurrencias: 1 Longitud de palabra: 6
Palabra: manejo de ocurrencias Número de veces: 1 Longitud de palabra: 8
Palabra: mecanismo Número de ocurrencias: 1 Longitud de palabra: 9
Palabra: sociedad Número de ocurrencias: 1 Longitud de la palabra: 7 El siguiente es el código del programa: 1 ***Hay 3 clases, a saber: Word.java (capa modelo) FileService.java (capa empresarial) Test.java (capa de vista) /**** ******************* ********************************** ******************* *****************************/paquete question3.model;import java.io.Serializable;/**
* Clase de entidad Word
* @author admin
*
*/
clase pública Word implementa Serializable, Comparable
valor de cadena privada;//guarda el valor de una sola palabra
entero privado frecuencia;//frecuencia de aparición de palabras
private Longitud entera;//palabra La longitud de
/**
* Ordenar palabras en orden alfabético, frecuencia de aparición y longitud de la palabra
*/
@Override
public int compareTo(Word word) {
//Compara el orden de letras primero
if(this.value.hashCode()!=word .getValue().hashCode()){
//Distingue entre mayúsculas y minúsculas
devolver this.value.trim().compareTo(word.getValue().trim()) ;
// //No distingue entre mayúsculas y minúsculas
// devolver this.value .trim().compareToIgnoreCase(word.getValue().trim());
}
//Compara la frecuencia de aparición
if(this .frequency!=word.getFrequency()){
return this.frequency -word.getFrequency();
}
//Comparar longitud p>
if(this.length!=word.getLength()){
return this.length-word.getLength();
}
devuelve 0;
}
public String getValue() {
valor de retorno;
}
public void setValue(valor de cadena) {
this.value = valor;
}
entero público getFrequency() {
frecuencia de retorno;
}
public void setFrequency(Frecuencia entera) {
this.frequency = frecuencia;
}
public Integer getLength() { p>
p>
longitud de retorno;
}
public void setLength(longitud entera) {
this.length = longitud;
}
}
/*************************** ***** ********************************************** ****** *******************************/ paquete question3.service;import java.io.BufferedInputStream;
importar java.io.File;
importar java.io.FileInputStream;
importar java.io.FileNotFoundException;
importar java.io.FileOutputStream;
importar java.io.IOException;
importar java.io.ObjectOutputStream;
importar java.util.Collection;
p>importar java.util.TreeSet;importar question3.model.Word;public class FileService { /**
* Leer archivo
* @param filePath
* @return
*/
cadena estática pública readFile(String filePath){
Archivo archivo=null;
byte[] contenido = nulo;
Longitud entera=null;
BufferedInputStream bis=null;
archivo=nuevo archivo(filePath);
intente {
bis=new BufferedInputStream(new FileInputStream(archivo));
length=bis.available();
content=new byte[longitud];
bis.read(contenido, 0, longitud);
} catch (FileNo
tFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finalmente{
if(bis!=null)try{bis.close();}catch(Exception e1){}
}
return new String(content);
}
/**
* Lee las palabras de la cadena basándose en espacios y guárdalas en la colección
* @param content
* @return
*/
colección pública
Colección
String[] strArray=content.split(" ");
for(String s: strArray) {
if(s!=null && s.trim().length()>0){
Palabra salidaPalabra=isWordExisted(palabraCol, contenido);
//No existe
if(exitedWord==null){
Palabra palabra=nueva Palabra();
palabra.setFrequency(1 ) ;
word.setLength(s.trim().length());
word.setValue(s.trim());
wordCol . add(word);
}else{//Existence
exitedWord.setFrequency(exitedWord.getFrequency()+1);
wordCol.add( exitedWord );
}
}
}
devolver palabraCol;
}
/**
* Determinar si la palabra existe en la colección
* @param wordCol
* @param wordValue
* @return
*/
palabra privada isWordExisted(Collection
for(Word word:wordCol){ p >
if(word.getValue().trim().equals(wordValue.trim())){
devolver palabra;
}
}
return null;
}
/**
* Ver las palabras de la colección
*@pa
ram wordColl
*/
public void show(Collection
for(Word word:wordCol){
System.out.println("Palabra: "+word.getValue()+"\tNúmero de apariciones: "+word.getFrequency()+"\tLongitud de palabra:"+word.getLength());
}
}
/**
* Guardar las palabras de la colección en el archivo
* @param wordCol
* @param filePath
*/
public void storeWords(Collection
Contenido de cadena =escapeValue(wordCol);
ObjectOutputStream oos=null;
prueba {
oos=new ObjectOutputStream(new FileOutputStream(new File(filePath)));
oos.write(content.getBytes());
oos.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finalmente{
if(oos!=null)
prueba{oos.close();}catch(Exception e){}
}
}< / p>
/**
* Deletrea las palabras de la colección en una cadena
* @param wordCol
* @return p>
*/
cadena privada escapeValue(Collection
StringBuffer buffer=new StringBuffer();
for(Palabra palabra: wordCol){
if(word!=null && word.getValue()!=null && word.getValue().trim().length()>0){
buffer.append(" "+word.getValue());
}
}
return buffer.toString();
}
}
/***************************** ** ************************************************* * ****************************/ paquete pregunta3.c
lient;importar java.util.Collection;importar question3.model.Word;
importar question3.service.FileService;public class Test {
public static void main(String[] args ){
FileService fs=new FileService();
String content=fs.readFile("input.txt");//Leer palabras del archivo
Colección
fs.show(wordCol);
fs.storeWords(wordCol, "db.txt") ;/ /Guardar la palabra en el archivo
}
}