zoukankan      html  css  js  c++  java
  • Class__Two

    今天老师要求做查找英文文章中最高频的词  文章用文本储存

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    public class Mananger {
     private final int MAX = 1000;
     private String[] st;
     private String s;         //用来转换StringBuilder类型
     private words[] a = new words[MAX];       //声明一个类数组
        private StringBuilder str=new StringBuilder();    //为了储存从文本中导出的字符串
     /*
      * 文件内容的导出
      */
     public  void output_1() throws IOException
       {
      
      File a=new File("information.txt");
         FileInputStream b = new FileInputStream(a);
         InputStreamReader c=new InputStreamReader(b,"UTF-8");
         {
          BufferedReader bufr =new BufferedReader(c);
          String line = null;
          while((line = bufr.readLine())!=null){
          st=line.split("[ ,?!.'" ]");     //字符串变成字符串数组,设置多个分割符
         for(int i=0;i<st.length;i++)
          str.append(st[i]+" ");    //将字符串添加到str类中
          }
          bufr.close();     
         }
         c.close();
         b.close();
          s=""+str;          //将str转换成String类
            st=s.split(" ");    //将s转换成字符串数组
       }
     
     /*
      * 用来比较字符串数组中哪个单词出现的频率多
      */
     public String Competive() throws IOException {
      String Max;
      output_1();
      int m=1;  
      int max=0;
      a[0]=new words();       //每次调用声明的a类数组都必须给它开辟一个空间
      a[0].Words=st[0];
      a[0].Number = 1;
      for(int i=1;i<st.length;i++) {   
       boolean flag = true;
       for(int j=0;j<m;j++) {
        if(a[j].Words.equals(st[i])) {   //如果字符串相同则它们出现的次数加一
         a[j].Number++;
         flag = false;
         break;
        }
       }
       if(flag) {   //将不同的字符串传入
        m++;
        a[m-1]=new words();
        while(st[i].equals(" "))
         i++;
        a[m-1].Words=st[i];
        a[m-1].Number = 1;
       }
      }
      for(int n=1;n<m;n++) {    //比较得出出现的次数最多的那个单词
       if(a[max].Number<a[n].Number)
        max=n;
      }
      Max = a[max].Words;
      return Max;
     }
     
     public static void main(String[] args) throws IOException  {
      Mananger con = new Mananger();   //声明一个Mananger对象用来调用Competive函数
            System.out.println("出现最多的单词是:"+con.Competive()); 
     }
      
    }
     
    遇到的问题循环没有设置好,设置分割符,文件导出后的转换,Java中结构体的使用
    问题都弄懂了感觉收获了很多
  • 相关阅读:
    python3
    python2
    python的爬虫
    SQL SEVERE 基本用法 1
    安装SQL SEVER 2017 express 轻量入门级软件 安装教程
    面试学习资料
    后端架构师--总结网址收藏(个人)
    JVM学习网址(收集总结)
    RabbitMQ--学习资源汇
    Redis 学习资料目录(Important)
  • 原文地址:https://www.cnblogs.com/goubb/p/9775680.html
Copyright © 2011-2022 走看看