统计txt文档中的单词个数

public class Bean {

    private char name;
    private double pinlv;
    public Bean(char name,double pl) {
        this.name=name;
        this.pinlv=pl;
    }
    public char getName() {
        return name;
    }
    public void setName(char name) {
        this.name = name;
    }
    public double getPinlv() {
        return pinlv;
    }
    public void setPinlv(double pinlv) {
        this.pinlv = pinlv;
    }

    }
import java.awt.List;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;

import org.w3c.dom.ls.LSInput;
    public class zero {
    static int sum=0;
    private static DecimalFormat decimalFormat;

        public static void main(String[] args) throws Exception{
            BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("F:\\eclipse\\统计txt文档中的单词个数\\src\\统计txt文档中的单词个数\\c.txt")));
            int[] count  = new int[26];
            int[] COUNT  = new int[26];
            decimalFormat = new DecimalFormat(".00");
            char[] c = new char[1];
            int len = br.read(c);
            while(len!=-1) {

                if(c[0]<=‘Z‘&&c[0]>=‘A‘) {
                    int number = c[0];
                    COUNT[number-65]++;
                }
                if(c[0]<=‘z‘&&c[0]>=‘a‘) {
                    int number = c[0];
                    count[number-97]++;
                }
                len = br.read(c);
            }
            Sum(count, COUNT);
            Print(count, COUNT);

            System.out.print("\nc.txt文件读取完毕!");
            br.close();
            char[] c1=new char[52];
            double []b=new double[52];
            for(int x=0;x<print_doublelist(count).length;x++) {
                b[x]=print_doublelist(count)[x];
            }
            for(int y=0;y<print_doublelist2(COUNT).length;y++) {
                b[y+print_doublelist(count).length]=print_doublelist2(COUNT)[y];
            }
            for(int i=0;i<52;i++) {
                if(i<26)
                c1[i]=(char)(i+97);
                else
                    c[i]=(char)(i+26);
            }

            Map<Character, Double> map = new HashMap<Character, Double>();
            ArrayList<Map.Entry<Character, Double>> list = new ArrayList<>();

            for(int i=0;i<52;i++) {
                map.put(c1[i], b[i]);
            }
            for(Map.Entry<Character, Double> entry : map.entrySet()){

                list.add(entry);

            }
             list.sort(new Comparator<Map.Entry<Character, Double>>(){
                 @Override
                 public int compare(Map.Entry<Character, Double> o1, Map.Entry<Character, Double> o2) {
                     return (int) (o2.getValue()-o1.getValue());}
             });

             for(Map.Entry<Character, Double> entry: list){
                 System.out.println(entry);
            }}

        public static void Print(int[] count,int[] COUNT) {
            for(int i=0;i<26;i++) {
                if(count[i]>0) {
                    char lowerCase = (char)(i+97);
                    System.out.println(lowerCase+"的频率为:"+decimalFormat.format((float)count[i]/sum));
                }
                if(COUNT[i]>0) {
                    char upperCase = (char)(i+65);
                    System.out.println(upperCase+"的频率为:"+decimalFormat.format((float)COUNT[i]/sum));
                }
            }

        }

        public static void Sum(int[] count,int[] COUNT ) {

            for(int i=0;i<26;i++) {
                sum+=count[i]+COUNT[i];
            }
            System.out.println("和为"+sum);
        }
      public static double[] print_doublelist(int[] count) {
          double a[]=new double[26];
          for(int i=0;i<26;i++) {
              a[i]=count[i]/sum;
          }
          return a;
      }

      public static double[] print_doublelist2(int[] COUNT) {
          double a[]=new double[26];
          for(int i=0;i<26;i++) {
              a[i]=COUNT[i]/sum;
          }
          return a;
      }
    }

原文地址:https://www.cnblogs.com/zhang188660586/p/11062018.html

时间: 2024-10-14 11:34:16

统计txt文档中的单词个数的相关文章

C语言K&R习题系列——统计文档中每个单词所占字母个数,以直方图形式输出

原题: Write a program to print a histogram of the lengths of words in its input. It is easy to draw the histogram with the bars horizontal; a vertical orientation is more challenging. 这也是我第一个过百行的代码(带注释,空格什么的) 主要分两个部分:输入和输出 #include < stdio.h > #define

用python从符合一定格式的txt文档中逐行读取数据并按一定规则写入excel(openpyxl支持Excel 2007 .xlsx格式)

前几天接到一个任务,从gerrit上通过ssh命令获取一些commit相关的数据到文本文档中,随后将这些数据存入Excel中.数据格式如下图所示 观察上图可知,存在文本文档中的数据符合一定的格式,通过python读取.正则表达式处理并写入Excel文档将大大减少人工处理的工作量. 1. 从gerrit获取原始信息,存入文本文档: $ssh –p 29418 <your-account>@192.168.1.16 gerrit query status:merged since:<date

网络抓取功能实现 将获取的结果进行过滤并写入到TXT文档中

下面是自己编写的 网络抓取功能实现 将获取的结果进行过滤并写入到TXT文档中 (以防忘记) 原创哟 import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;import java.io.Inp

用matlab查找txt文档中的关键字,并把关键字后面的数据存到起来用matlab处理

用matlab查找txt文档中的关键字,并把关键字后面的数据存到起来用matlab处理 我测了一组数据存到txt文件中,是个WIFI信号强度文档,里面有我们需要得到的数据,有没用的数据,想用matlab查找关键字(SSID),把关键字后面的数字存起来用作后期处理分析,如下图,把ky后面的信号强度数据(那个负数)弄出来.求大神指点应该怎么办,或给程序,谢谢! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 fn = 'my_data.txt'; fid = fo

C语言,产生一组数字,并将其写入txt文档中

#include<stdio.h> /*产生一组连续的数字,并将其写到txt文档中*/ /*说明:本程序在在win10 系统64位下用Dev-C++ 5.11版本编译器编译的*/int main(){ int m=1; FILE *fp=NULL; fp=fopen("D:\\1.txt","w"); //写入D盘1.txt中 for(m=1;m<=100;m++) { printf("%d;",m); fprintf(fp,&

java使用正则从爬虫爬的txt文档中提取QQ邮箱

我的需求是从一堆文档中提取出qq邮箱,写了这篇帖子,希望能帮助和我有一样需求的人,谢谢!...... import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.util.regex.Matcher; import java.util.regex.Pattern; public class GetEmail { public static void getEmail() {

C++ code: 将程序的输出,保存到txt文档中,且每35个数,自动换行

// write the predicted score into txt files       ofstream file("/home/wangxiao/Downloads/caffe-master/wangxiao/bvlc_alexnet/predict_score.txt",ios::app);      if(!file) return;      static int nu = 0;      if(nu < 35){        file << b

Excel VBA 统计一个文档中所有sheet的已用行数

Sub countrownum() Dim i, num, rownum num = Worksheets.Count For i = 2 To num 'Worksheets(i).Select rownum = WorksheetFunction.CountA(Worksheets(i).Columns("a:a")) Sheets(1).Cells(i, 5) = rownum Next End Sub

WebService 实现BS环境与BS环境传递参数,根据参数生成txt文档

客户端: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Client.aspx.cs" Inherits="客户端.Client" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"><head runat="ser