public class Bean {
private char name;
private double pinlv;
public Bean(char name,double pl) {
this.name=name;
this.pinlv=pl;
}
public char getName() {
return name;
}
public void setName(char name) {
this.name = name;
}
public double getPinlv() {
return pinlv;
}
public void setPinlv(double pinlv) {
this.pinlv = pinlv;
}
}
import java.awt.List;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import org.w3c.dom.ls.LSInput;
public class zero {
static int sum=0;
private static DecimalFormat decimalFormat;
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("F:\\eclipse\\统计txt文档中的单词个数\\src\\统计txt文档中的单词个数\\c.txt")));
int[] count = new int[26];
int[] COUNT = new int[26];
decimalFormat = new DecimalFormat(".00");
char[] c = new char[1];
int len = br.read(c);
while(len!=-1) {
if(c[0]<='Z'&&c[0]>='A') {
int number = c[0];
COUNT[number-65]++;
}
if(c[0]<='z'&&c[0]>='a') {
int number = c[0];
count[number-97]++;
}
len = br.read(c);
}
Sum(count, COUNT);
Print(count, COUNT);
System.out.print("\nc.txt文件读取完毕!");
br.close();
char[] c1=new char[52];
double []b=new double[52];
for(int x=0;x<print_doublelist(count).length;x++) {
b[x]=print_doublelist(count)[x];
}
for(int y=0;y<print_doublelist2(COUNT).length;y++) {
b[y+print_doublelist(count).length]=print_doublelist2(COUNT)[y];
}
for(int i=0;i<52;i++) {
if(i<26)
c1[i]=(char)(i+97);
else
c[i]=(char)(i+26);
}
Map<Character, Double> map = new HashMap<Character, Double>();
ArrayList<Map.Entry<Character, Double>> list = new ArrayList<>();
for(int i=0;i<52;i++) {
map.put(c1[i], b[i]);
}
for(Map.Entry<Character, Double> entry : map.entrySet()){
list.add(entry);
}
list.sort(new Comparator<Map.Entry<Character, Double>>(){
@Override
public int compare(Map.Entry<Character, Double> o1, Map.Entry<Character, Double> o2) {
return (int) (o2.getValue()-o1.getValue());}
});
for(Map.Entry<Character, Double> entry: list){
System.out.println(entry);
}}
public static void Print(int[] count,int[] COUNT) {
for(int i=0;i<26;i++) {
if(count[i]>0) {
char lowerCase = (char)(i+97);
System.out.println(lowerCase+"的频率为:"+decimalFormat.format((float)count[i]/sum));
}
if(COUNT[i]>0) {
char upperCase = (char)(i+65);
System.out.println(upperCase+"的频率为:"+decimalFormat.format((float)COUNT[i]/sum));
}
}
}
public static void Sum(int[] count,int[] COUNT ) {
for(int i=0;i<26;i++) {
sum+=count[i]+COUNT[i];
}
System.out.println("和为"+sum);
}
public static double[] print_doublelist(int[] count) {
double a[]=new double[26];
for(int i=0;i<26;i++) {
a[i]=count[i]/sum;
}
return a;
}
public static double[] print_doublelist2(int[] COUNT) {
double a[]=new double[26];
for(int i=0;i<26;i++) {
a[i]=COUNT[i]/sum;
}
return a;
}
}