zoukankan      html  css  js  c++  java
  • 作业4词频统计2

    • [必做 2] 读取小文本文件A_Tale_of_Two_Cities.txt 或者 大文本文件Gone_with_the_wind.txt,统计某一指定单词在该文本文件中出现的频率。
    • 命令行格式: 提示符> Myapp.exe -f filename.txt -w word (PS:C++ 程序,Java 程序输出方式类似)
    • 解释:
      • 选项 -f 表示打开某一文件(filename.txt)
      • 选项 -w 表示统计其后单词(word)在打开的文件(filename.txt)中的频率。
    package 词频统计;
    
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.Scanner;
    
    public class word2 {
    
    
        public static String fun(String a)
        {
                if(a.contains(",")||a.contains("."))//单词含标点。
                {
                    a=a.substring(0,a.length()-1);//把标点去掉。
                    return a;
                }
                else
                    return a;   
        }
        
          public static void main(String []s1)
          {
              
            String s;        
            char m = 0,n;
            String []data=new String[1000];//存单词
            String []value=new String[1000];//单词,不重复。
            int []count=new int[1000];//对应个数。
            int sum=0,j;
            for(i=0;i<1000;i++) //初始化个数。
            {
                count[i]=1;
            }
            System.out.println("导入文件输入1,查询单词输入2");
            Scanner m1=new Scanner(System.in);
            String m2=m1.nextLine();
            switch(m2){
            case 1:System.out.println("请输入所要查询的文件路径及文件名:");
                    Scanner sc=new Scanner (System.in);
                    String files=sc.nextLine();
                    sc.close();
                    File file = new File(files);
                    try {
                            FileReader fileReader=new FileReader("n");
                            BufferedReader br=new BufferedReader(fileReader);
                            s=br.readLine();//读取第一行
                            while(s!=null)
                            {
                                String []ss=s.split(" ");//取出单词
                                for( i=0;i<ss.length;i++)
                                {
                                    ss[i]=fun(ss[i]);//把标点去掉。
                                    for(j=0;j<sum;j++)
                                    {
                                        if(ss[i].equals(value[j]))
                                        {
                                            count[j]++;
                                            break;
                                        }
                                    }
                                    if(j==sum)
                                    {
                                        value[sum++]=ss[i];
                                    }
                                }          
                                s=br.readLine();//读取文件下一行
                            }  
                        }
                            System.out.println("导入完成。");
                        
                case 2:System.out.println("请输入要查询的单词:");
                        Scanner n1=new Scanner(System.in);
                        String n2=n1.nextLine();
                        
                    for(int i=1;i<count.length;i++)
                     {
                        if(n2.equals(value[i]))
                            System.out.println("该词在本文件中出现的次数为:"+count[i]+"次");
                     }
            }
                  
            } 
              
             
    
    }

    代码根据上次作业修改,添加switch语句进行选择从而达到效果只不过不是直接-f和-w而是进行1,2选择。

  • 相关阅读:
    STM32中断优先级理解
    STM32按键控制程序
    STM32的LED驱动程序
    嵌入式程序员应知道的0x10个C语言Tips[转]
    【Unity】使用RenderTexture为物体生成快照
    对装饰模式(Decorator)的解读
    设计模式之初:理解面向对象设计
    windows RT系统下解决网络丢包问题
    IOS推出测试平台
    小米路由试用心得3——关于数据备份及客户端软件
  • 原文地址:https://www.cnblogs.com/ROUGH-TALE/p/5335638.html
Copyright © 2011-2022 走看看