zoukankan      html  css  js  c++  java
  • 测试

    输出某个英文文本文件中 26 字母出现的频率,由高到低排列,并显示字母出现的百分比,精确到小数点后面两位。
    字母频率 = 这个字母出现的次数 / (所有A-Z,a-z字母出现的总数)
    如果两个字母出现的频率一样,那么就按照字典序排列。
    package bianli;
    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.InputStreamReader;
    import java.text.NumberFormat;
    public class ZiMu{
        public class java {
        }
        public static void main(String[] args) throws Exception {
            BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("D:\信1807-5郝子嘉20183684\Harry Potter and the Sorcerer's Stone.txt")));
            int[] count  = new int[26];
       
            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]++;
    //                COUNT[number-65]++;
                }
                if(c[0]<='z'&&c[0]>='a') {
                    int number = c[0];
                    count[number-97]++;
                }
                len = br.read(c);
            }
            count=Paixu(count);
            Print(count);
            System.out.print(" b.txt文件读取完毕!");
            br.close();
           
        }
        public static int[] Paixu(int[] count)
        {
            int temp;
            int size=count.length;
            for(int i=0;i<size-1;i++)
            {
                for(int j=i+1;j<size;j++)
                {
                    if(count[i]<count[j])
                    {
                        temp=count[j];
                        count[j]=count[i];
                        count[i]=temp;
                       
                    }
                }
            }
            return count;
           
        }
        public static void Print(int[] count) {
            NumberFormat numberFormat = NumberFormat.getInstance();
            
            // 设置精确到小数点后2位
     
            numberFormat.setMaximumFractionDigits(2);
            int sum=0;
            for(int i=0;i<count.length;i++)
            {
                sum=count[i]+sum;
            }
            String[] a=new String[count.length];
            for(int i=0;i<count.length;i++)
            {
                 a[i] = numberFormat.format((float) count[i] / (float) sum * 100);
            }
            for(int i=0;i<26;i++) {
                if(count[i]>0) {
                    char lowerCase = (char)(i+101);
                    System.out.println(lowerCase+"("+count[i]+")"+"("+a[i]+"%)");
                }
            }
           
        }

    }

     输出单个文件中的前 N 个最常出现的英语单词。
    作用:一个用于统计文本文件中的英语单词出现频率的控制台程序;

    package bianli;

    import java.io.*;
    import java.util.*;
    import java.util.Map.Entry;
    public class Word
    {
         public static int n=0;
         public static void main(String[] args) {
         Scanner input=new Scanner(System.in);
         String s;
         int count=0;
         int num=1;
        
         String file1="D:\\信1807-5郝子嘉20183684\\Harry Potter and the Sorcerer's Stone.txt";
        
         try
         {
           BufferedReader a=new BufferedReader(new FileReader(file1));
          
           StringBuffer c=new StringBuffer();
          
           while((s = a.readLine()) != null)
           {
                
                 c.append(s);
           }
         
           String m=c.toString().toLowerCase();
          
           String [] d=m.split("[^a-zA-Z0-9]+");
          
           Map<String , Integer> myTreeMap=new  TreeMap<String, Integer>();
           for(int i = 0; i < d.length; i++) {
              
                 if(myTreeMap.containsKey(d[i])) {
                     count = myTreeMap.get(d[i]);
                     myTreeMap.put(d[i], count + 1);
                 }
                 else {
                     myTreeMap.put(d[i], 1);
                 }
             }
        
           List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(myTreeMap.entrySet());
       
           Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
              
                 public int compare(Entry<String, Integer> k1, Entry<String, Integer> k2) {
                    
                     return k2.getValue().compareTo(k1.getValue());
                 }
                
             });
            System.out.println("请输入要输出前N名的N");
             n=input.nextInt();
           for(Map.Entry<String, Integer> map : list) {
                 if(num <= n) {
                   
                    
                     System.out.println(map.getKey() + map.getValue()+"/");
                     num++;
                 }
               
               
                 else break;
             }
            
             a.close();
            
         }
         catch(FileNotFoundException e)
    {
            System.out.println("找不到指定文件");
         }
         catch(IOException e)
         {
             System.out.println("文件读取错误");
         }
         System.out.println("输出完成");
     }
     }
  • 相关阅读:
    Android 适配底部返回键等虚拟键盘的完美解决方案
    Android 第三方库导致jar包冲突解决办法
    git强制push
    解决因为本地代码和远程代码冲突,导致git pull无法拉取远程代码的问题
    上周热点回顾(4.4-4.10)团队
    上周热点回顾(3.28-4.3)团队
    上周热点回顾(3.21-3.27)团队
    上周热点回顾(3.14-3.20)团队
    .NET跨平台之旅:corehost 是如何加载 coreclr 的团队
    .NET跨平台之旅:探秘 dotnet run 如何运行 .NET Core 应用程序团队
  • 原文地址:https://www.cnblogs.com/123-haozijia/p/11800853.html
Copyright © 2011-2022 走看看