作业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选择。

原文地址:https://www.cnblogs.com/ROUGH-TALE/p/5335638.html