zoukankan      html  css  js  c++  java
  • 《飘》英文版单词高频率出现单词-算法实现

    飘的代码实现如下:

    package shangke.disanzhou;  
      
    import java.io.File;  
    import java.io.InputStreamReader;  
    import java.io.BufferedReader;  
    import java.io.BufferedWriter;  
    import java.io.FileInputStream;
    import java.util.Arrays;
    import java.util.List;
    import java.util.StringTokenizer;
    import java.io.FileWriter;  
      
    public class cin_txt {  
        
        
        
        
        
        
        public static void main(String args[]) {  
            int n=0;
            int flag;
            int m=0;
             String word[]=new String[100000];
             int sum[]=new int[100000];
             String hang[]=new String[1000];
             List<String> list;
             String w;
            int i=0;
            try { // 防止文件建立或读取失败,用catch捕捉错误并打印,也可以throw  
      
                /* 读入TXT文件 */  
                String pathname = "H:\wenben.txt"; // 绝对路径或相对路径都可以,这里是绝对路径,写入文件时演示相对路径  
                File filename = new File(pathname); // 要读取以上路径的input。txt文件  
                InputStreamReader reader = new InputStreamReader(  
                        new FileInputStream(filename));
                BufferedReader br = new BufferedReader(reader);  
                String line = "";  
                line = br.readLine();  
                while (line != null) {  
                    //将文本文档中的单词与符号分离
                    StringTokenizer st2 = new StringTokenizer(line, ",,., ,!,?,“,”,‘,-,'");
                     i=0;
                    while (st2.hasMoreElements()) {
                        hang[i]=String.valueOf(st2.nextElement());
                        //hang[i]=(String) st2.nextElement();
                        hang[i]=hang[i].toLowerCase();
                        //System.out.println("************");
                        m++;
                         list = Arrays.asList(word);
                      flag = list.indexOf(hang[i]);
                        if(flag==-1)
                        {
                            word[n]=hang[i];
                            sum[n]++;
                            n++;
                        }
                        else
                        {
                            sum[flag]++;
                        }
                        //System.out.print(hang[i]+" ");
                        i++;
                    }
                   // System.out.println();
                    
                    //System.out.println("**********");
                    //System.out.println(line);
                    line = br.readLine(); // 一次读入一行数据 
                }  
      
                /* 写入Txt文件 */  
               /* File writename = new File("H:\wenben0.txt"); //相对路径,如果没有则要建立一个新的output。txt文件  
                writename.createNewFile(); // 创建新文件  
                BufferedWriter out = new BufferedWriter(new FileWriter(writename));  
                out.write("我会写入文件啦
    "); // 
    即为换行  
                out.flush(); // 把缓存区内容压入文件  
                out.close(); // 最后记得关闭文件 */ 
      
            } catch (Exception e) {  
                e.printStackTrace();  
            }
            
            int ma=0;
            int biao=0;
            for(int j=0;j<n-1;j++)
            {
                ma=sum[j];
                biao=j;
                w=word[j];
                for(int k=j+1;k<n;k++)
                {
                    if(ma<sum[k])
                    {
                        ma=sum[k];
                        biao=k;
                    }
                }
                sum[biao]=sum[j];
                sum[j]=ma;
                word[j]=word[biao];
                word[biao]=w;
            }
            System.out.println("******************");
            //System.out.println(m);
           // System.out.println(n);
            //System.out.println("***********");
           /* for(int j=0;j<n;j++)
            {
                System.out.println(sum[j]);
                System.out.println(word[j]);
            }*/
            for(int j=0;j<10;j++)
            {
                System.out.println(sum[j]);
                System.out.println(word[j]);
            }
        }  
    }  

    其中最后的for循环可以根据自己需要改代码实现输出平频率最高的单词数

    从txt文本文档中读取并且排出文本中单词,最重要的就是文本的导入和分离单词与各种符号的分离

  • 相关阅读:
    0428备份
    1
    0416工作备份
    Bootstrap dropdown a标签或者button 点击事件
    禁止Html5在手机上屏幕页面缩放
    查看端口占用情况
    cakephp 中的find的用法
    cakephp 中连接查询多表 或group by
    cakephp 中的in的用法
    php批量下载文件
  • 原文地址:https://www.cnblogs.com/yizhixiaozhu/p/11693550.html
Copyright © 2011-2022 走看看