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

时间: 2024-10-28 16:33:06

作业4词频统计2的相关文章

第二周结对编程作业:词频统计

程序实现的功能是统计文件中出现的词和每个词的频数. 这里的词的规定和平时语言上的规定不太一样,但是更标准化,规定了长度.组成字符和分隔符,在实现中也从这几个方面来寻找词. /*判断字符是否是字母*/ bool isAlphabetic (char c) { return ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')); } /*判断字符是否是数字*/ bool isNumerical (char

作业之词频统计

项目需求: 1编一程序,统计一篇英文文章中各单词出现的次数. 2输入:英文文章,为文本文件,扩展名.txt 3输出:按次数降序排列 设计如下. 1 #pragma warning (disable:4996) 2 #include <iostream> 3 #include <map> 4 #include <vector> 5 #include <algorithm> 6 7 using namespace std; 8 9 class String 10

结对作业4词频统计

结对对象:谢小山   博客:http://home.cnblogs.com/u/898254/ github账号:https://github.com/hjs12 http://www.cnblogs.com/xiexiaoshan123/ 贡献比例:50%:50% // ConsoleApplication2.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include<fstream

个人作业3词频统计

  #include <stdlib.h> #include <stdio.h> #include <cstring> int chazhao(char *str1,char *str2) { char *p=str1;//p指向句子 int i=0,k=0;//k统计个数 while(*p!='\0')//句子结束退出循环 { while(*p!=' ')//单词结束退出循环 查找下个单词 { if(*p!=str2[i])//遇到不同字母 指向下一个单词 while

第二周作业-词频统计

本周作业是词频统计,编程具体要求如下: https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/922 对实现功能进行简要的介绍: 功能一:小文件输入,为表明程序能跑.需要在控制台下输入命令,得到文件中不重复的总单词数.并对单词出现的次数进行排序输出. 功能二:支持命令行输入英文作品的文件名,亲自录入,输出显示不重复单词总数,并对出现频率最高的前10的单词进行输出 功能三:支持命令行输入存储有英文作品文件的目录名,批量统计词频. 功能四:

软件工程第二次作业 词频统计

1.项目名称:词频统计 2.代码地址:https://coding.net/u/songyuu/p/python_wf/git 3.代码如下: 1 import os 2 import re 3 import collections 4 #print(os.getcwd()) #显示wf.py路径 5 #print(os.listdir())#显示目录下的文件 6 file_name=input("wf ") 7 if not os.path.isfile(file_name+'.tx

个人作业——词频统计

本次编程项目的主题为英文单词词频统计,主要分为下面四个小项目: 1.统计已存在的文档中的英文单词词频统计,并降序输出: 2.用户输入文件名,程序对其中的内容进行词频统计并降序输出: 3.用户输入指定文件夹的路径,程序遍历路径下的所有文件,并分别对其中的内容进行词频统计,降序输出前10个单词的词频: 4.用户在控制台按照要求输入文本内容,并将输入的内容存入指定文本中,程序对输入的内容进行词频统计并降序输出. 我在本科学期间进行过C/C++的学习,所以本次作业使用的语言为C++,使用codebloc

第二周结对编程作业——词频统计

本周作业是结对编写一个词频统计的程序,我们组是我(欧阳思琪)和贺晋飞同学共同完成这项任务.在仔细阅读了要求之后,我们组对程序编程进行了讨论.由于语言可以不必局限于要求中的C.C++,我们便考虑JAVA或python,两者各有优缺点,JAVA写起来比较繁重,而基于以往用python处理NLP相关项目的经验觉得python较为简单,但觉得在简单要求下,使用JAVA的运行速度明显更快,所以我们选择使用JAVA来完成本次作业. 分工:欧阳思琪 代码编写与博客编写 贺晋飞   代码审查与代码测试 实际:由

软件工程第二周作业----词频统计

实验要求: 统计文件中出现过的单词数目,并按数目和字典顺序排序,将结果输出到指定文件中.需要统计单词的文件名从命令行输入. 实验分工: 代码编写&测试:张文杰 博客编写:朱昱青 实验思路: 1.在主函数中打开输入和输出文件,获得文件的指针,然后以指针为参数调用count()函数进行词频统计. 2.在count()函数中,利用while循环,不断从文件中分离出可能是单词的字符串(也就是被分隔符隔开的连续字母和数字),然后进一步判断该字符串是否是一个单词.如果是,再查看这个单词是否出现过,如果出现过