4.28

package word;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

public class Text {

    public static void main(String[] args) throws Exception {
        //BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("piao.txt")));
        File word=new File("F:\\JAVA\\JAVA\\新建文件夹\\word\\piao.txt");
        BufferedReader br=new BufferedReader(new FileReader(word));
        

        
        StringBuffer d=new StringBuffer();
        String s=null;
        String s1="";
        
        
        
        while((s=br.readLine())!=null) {
            d.append(s);
        }
        
        Scanner scanner=new Scanner(word);
        HashMap<String, Integer > hashMap=new HashMap<String,Integer>();
        List<Map.Entry<String, Integer>> list = new ArrayList<>();
        while(scanner.hasNextLine()) {
            String line=scanner.nextLine();
            System.out.println(line);
            String[] lineWords=line.split("\\W+");
            Set<String> wordSet=hashMap.keySet();
            for(int i=0;i<lineWords.length;i++)
            {
                if(wordSet.contains(lineWords[i]))
                {
                    Integer number=hashMap.get(lineWords[i]);
                    number++;
                    hashMap.put(lineWords[i], number);
                }
                else 
                {
                    hashMap.put(lineWords[i], 1);
                }
            }

        }
        
        
            for(Map.Entry<String, Integer> entry : hashMap.entrySet()){
                list.add(entry); //将map中的元素放入list中
            }
        list.sort(new Comparator<Map.Entry<String, Integer>>(){
            @Override
             public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
                  return o2.getValue().compareTo(o1.getValue());} 
                 //逆序(从大到小)排列,正序为“return o1.getValue()-o2.getValue”
      }); 

        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i).getKey() + ": " + list.get(i).getValue());
        }
        /*Iterator<String> iterator=hashMap.keySet().iterator();
        while(iterator.hasNext())
        {
            //String word1=iterator.next();
            
            //System.out.printf("单词:%-12s 出现次数:%d\n",word1,hashMap.get(word1));
            
        }*/
        br.close();
        
        
        BufferedReader br1 = new BufferedReader(new InputStreamReader(new FileInputStream("piao.txt")));
        int[] count  = new int[26];
        int[] COUNT  = new int[26];
        
        char[] c = new char[1];
        int len = br1.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 = br1.read(c);
        }
        Print(count, COUNT);
        System.out.print("\nb.txt文件读取完毕!");
        br1.close();
        
    }
    public static void Print(int[] count,int[] COUNT) {
        double sum=0;
        char[] c=new char[26];
        double[] p=new double[26];
        for(int j=0;j<26;j++) {
            if(count[j]>0&&COUNT[j]>0) {
                sum=sum+count[j]+COUNT[j];
            }            
        }
        System.out.println("总数为:"+sum);
        for(int i=0;i<26;i++) {
            if(count[i]>0) {
                char lowerCase = (char)(i+97);
                System.out.println(lowerCase+"("+count[i]+")");
                double percent;
                percent=count[i]/sum;
                c[i]=lowerCase;
                //System.out.println("百分比为:"+percent);
            }
            if(COUNT[i]>0) {
                char upperCase = (char)(i+65);
                System.out.println(upperCase+"("+COUNT[i]+")");
                double percent1;
                percent1=COUNT[i]/sum;
                //System.out.println("百分比为:"+percent1);
            } 
            if(count[i]>0&&COUNT[i]>0) {
                
                System.out.println("总数为:"+"("+ (count[i]+COUNT[i]) +")");
                double percent2;
                percent2=(count[i]+COUNT[i])/sum;
                p[i]=percent2;
                System.out.println("百分比为:"+String.format("%.2f", percent2));
            }
            
            
            
        }
        double t;
        char c1;
        for(int q=0;q<26;q++) {
            for(int w=q+1;w<26;w++) {
                if(p[q]<p[w]) {
                    t=p[q];
                    p[q]=p[w];
                    p[w]=t;
                    c1=c[q];
                    c[q]=c[w];
                    c[w]=c1;
                }
            }
        }
        for(int q=0;q<26;q++) {
            System.out.println(c[q]+":"+String.format("%.2f", p[q]));
        }
        
    }


}

posted on 2019-05-05 22:48  哈萨K  阅读(188)  评论(0编辑  收藏  举报