博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《飘》单词统计(数目,百分比,无用词)
阅读量:5257 次
发布时间:2019-06-14

本文共 5190 字,大约阅读时间需要 17 分钟。

  • 设计思想:
  1. 首先是统计字母出现的频率。首先定义一个方法,将文本文件里面的内容按行读出来存入一个字符串变量里面。之后按照要求将字符串里面的字母全部变为小写。创建两个数组,一个用来存储字符串里面的字母,一个用来存储对应的次数,同时设置一个变量来存放字母出现的总次数。为了方便按照出现频率进行排序,我将字母和对应的次数以及对应的频率存入了一个对象中。之后通过排序输出结果。
  2. 其次是统计单词出现的次数。首先同样是把文本文件的内容读入一个字符串中方便处理。为了方便将字符串分割为若干个单词,我将字符串里面的标点符号替换为空格,之后按照空格进行分割,得到若干个单词。后面的操作与之前的很相似,最终将单词与对应的次数存入了对象中,排序输出,并且可以指定输出次数排名前几的那些单词。
  3. 本次测试增加了一个无用词表。将文章里面的单词进行筛选,去掉一些无用词。初步构思将一个无用词表中的单词和文本文件里面的单词进行比较,若相同则不对其进行存储,便不会进行接下来的排序等操作,实现了单词的筛选。具体操作是使用之前的方法将文本文件读进一个字符串变量进行分割得到单词。再与指定的单词比较,便可以实现筛选。

package com.java.fmd;import java.io.File;import java.io.FileNotFoundException;import java.util.HashMap;import java.util.Scanner;import java.util.Set;public class danci {    public static void main(String[] args) throws FileNotFoundException    {        File file=new File("piao.txt");        if(!file.exists())        {            System.out.println("文件不存在");            return;        }        Scanner scanner=new Scanner(file);        HashMap
hashMap=new HashMap
(); System.out.println("文章-----------------------------------"); while(scanner.hasNextLine()) { String line=scanner.nextLine(); System.out.println(line); String[] lineWords=line.split("\\W+"); Set
wordSet=hashMap.keySet(); for(int i=0;i
iterator=hashMap.keySet().iterator(); while(iterator.hasNext()) { String word=iterator.next(); System.out.printf("单词:%-12s 出现次数:%d\n",word,hashMap.get(word)); } System.out.println("程序结束--------------------------------"); }}
package com.java.fmd;import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.HashMap;public class baifenbi {    public static void main(String[] args) throws IOException {        try {
FileReader fr = new FileReader("piao.txt"); BufferedReader br = new BufferedReader(fr); HashMap
map = new HashMap
(); String string =null; Integer count = 0; Integer total = 0; while ((string=br.readLine())!=null) { char[] ch = string.toCharArray(); total = total + ch.length; for (int i = 0; i < ch.length; i++) { ch[i] = Character.toLowerCase(ch[i]); count = map.get(ch[i]+""); if (count == null) { count = 1; }else { count++; } map.put(ch[i]+"", count); } } for (String str : map.keySet()) { System.out.println(str+":"+map.get(str)+" "+map.get(str)*1.0/total); } } catch (FileNotFoundException e) {
e.printStackTrace(); } }}
import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.text.DecimalFormat;import java.util.Map;import java.util.Scanner;import java.util.TreeMap;class zimu{    char zm;    double ci;    String pl;    zimu()    {        zm=0;        ci=0;        pl=null;    }}class dc{    String name;    int num;    dc()    {        name=null;        num=-1;    }}public class Main {    public static void findword(String text) throws IOException{        @SuppressWarnings("resource")        Scanner scan=new Scanner(System.in);        int i=0;        String[] array = {".",",","?","!"};        for (int i1 = 0; i1 < array.length; i1++) {            text = text.replace(array[i1]," ");        }        String[] textArray = text.split(" ");        Map
map = new TreeMap
(); for (int i1 = 0; i1 < textArray.length; i1++) { String key = textArray[i1]; //转为小写 String key_l = key.toLowerCase(); if(!"".equals(key_l)){ Integer num = map.get(key_l); if(num == null || num == 0){ map.put(key_l, 1); } else if(num > 0){ map.put(key_l, num+1); } } } for(@SuppressWarnings("unused") String e:map.keySet()){ // System.out.println("单词:"+e+" 次数:"+map.get(e)); i++; } dc [] z=new dc[i]; for(int m=0;m<=i-1;m++) { z[m]=new dc(); } int j=0; for(String e:map.keySet()) {
if(z[j]!=null&&!nousejudge(e,"nouse.txt")) { z[j].name=e; z[j].num=map.get(e); } j++; } dc t=new dc(); for(int m=0;m<=i-1;m++) { for(int n=m;n<=i-1;n++) { if(z[m]!=null&&(z[m].num
z[j].ci) { t=z[i]; z[i]=z[j]; z[j]=t; } } } for(i=0;i

 

转载于:https://www.cnblogs.com/fuheishi/p/11056766.html

你可能感兴趣的文章
mysql数据库 中文乱码
查看>>
Linux下Mysql数据库互为主从的配置过程
查看>>
ECSHOP系统,数据库表名称、结构
查看>>
Python Web开发框架Django
查看>>
【Install】我是如何安装Linux类系统的
查看>>
作业三4
查看>>
多态存在的3个必要条件
查看>>
code First 四
查看>>
Django与Ajax
查看>>
再做一题,2013-6-16更新
查看>>
Oracle_Statspack性能诊断工具
查看>>
面向对象(封装、继承、多态、抽象)
查看>>
Memcached数据库缓存
查看>>
转获取sql维护的表关系
查看>>
网络基础——TCP/IP五层模型
查看>>
HDU-3018 Ant Trip(欧拉回路)
查看>>
CDOJ 1251 谕神的密码 贪心
查看>>
CMYK列印颜色
查看>>
多线程 测试
查看>>
web提前做好测试
查看>>