En Java, ¿cómo se lee un archivo, se cuenta la frecuencia de cada letra y se escriben las 26 letras y frecuencias de forma recursiva?
paquete com.sanqing.ceshi;
importar java.io.File;
importar java.io.FileInputStream;
importar java.io.IOException;
importar java.io.InputStream;
importar java.util.ArrayList;
//Cómo leer un archivo en java , luego cuenta la frecuencia de cada letra y escribe recursivamente las 26 letras y frecuencias.
public class ceshi {
public static void main(String[] args) {
/* * Este programa completa principalmente la lectura de un archivo del disco duro contenido y luego contar la frecuencia de aparición de 26 letras en inglés* Primero, debe crear un nuevo archivo 1.txt en su unidad D, que restringe la entrada solo de letras minúsculas, y luego ejecutar el programa para ver los resultados* /
Archivo archivo = nuevo Archivo("d:" + File.separator + "1.txt");
InputStream ips = null;
ArrayList
try {
System.out.println("Lea el contenido del archivo en bytes, un byte a la vez: " );
ips = new FileInputStream(archivo);
int tempbyte;
mientras ((tempbyte = ips.read()) != -1 ) {
arr.add(tempbyte);
// System.out.print((char)tempbyte);//Leer en unidades de un byte, leer El código ASCII es recibido
}
ips.close();
} catch (IOException e) {
e.printStackTrace ();
return;
}
System.out.println(arr);
//System.out.println (tongjipinlv(arr) ));
System.out.println("El contenido leído del archivo, según la frecuencia de las letras de la a a la z, es el siguiente:");
para (int arr1:tongjipinlv(arr)){
System.out.print(arr1+",");
}
}
//Frecuencia estadística de letras
public static int[] tongjipinlv(ArrayList
char[] lower = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',
'l', ' m' , 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
'x ', 'y', 'z' };//Almacenamiento 26 letras inglesas
>
int[] recuento ={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0};
for (int s: arr) {
System.out.print((char)s);//Atravesar El contenido del archivo es de tipo int y se convierte a tipo char
}
System.out.println();
for (int i=0 ;i for(int j=0;j if (arr.get(j) = = inferior[i]) { ++count[i]; //recuento de retornos; } else{ } } recuento de devoluciones; } } No Si lo entiendes, puedes preguntar y espero que lo adoptes. ! !