简单的方法来统计文件中单词和各种标点符号个数

 此小程序使用最基本的方法来统计文本中英文单词的个数,想法也比较简单:
(1)从文本中文本读取内容,使用BufferedReader类每次读取一行并添加到StringBuffer类型变量中,
  最后StringBuffer类型变量即为文本的内容,如StringBuffer sb;
(2)把sb的内容全部转化成小写字母(或大写字母);
(3)统计文件中各种标点符号个数;
(4)把所有标点符号统一替换成一种标点符号,如替换成逗号
(5)替换后的文本使用字符串的分割函数来获取返回的字符串数组的长度,此长度即为文件中单词的总个数
代码如下;
import java.io.*;
public class WordsCount {
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        BufferedReader br = new BufferedReader(new FileReader("e:/a.txt"));
        StringBuffer sb = new StringBuffer();
        String line;
        while((line = br.readLine()) != null)
        {
            sb.append(line);//把每次读取的一行数据附加到sb中
            sb.append("\n");//每读取一行加入换行符
        }
        System.out.print("原文件内容:\n"+sb);//打印目前的文章即字符串sb的内容
        br.close();//关闭文件流

        String s = sb.toString().toLowerCase();//把sb转化成小写复制给字符串s
        System.out.print("字母转化成小写后文件内容:\n"+s);//打印当前文章即字符串s的内容

        int countCh = 0;//统计文件中字符个数
        StringBuffer c = new StringBuffer();//存储文件中字符个数
        for(int i=0;i<s.length();i++)
        {
            char ch = s.charAt(i);//获取文件中每一个字符并赋给字符ch
            if(!(ch >= ‘a‘ && ch <= ‘z‘))
            {
                c.append(ch);//把获取的字符一次附加到c中
                countCh ++;
            }
        }

        int space = 0,qm = 0,comma = 0,excl = 0,other = 0;//question mark问号   comma 逗号    exclamation 叹号
        for(int i=0;i<c.length();i++)
            if(c.charAt(i) == ‘ ‘)
                space ++;
            else if(c.charAt(i) == ‘?‘)
                qm ++;
            else if((c.charAt(i) == ‘!‘))
                excl ++;
            else if((c.charAt(i) == ‘,‘))
                comma ++;
            else
                other ++;

        String temp = "";
        if(countCh>=0)
        {
            /*
            (1)把所有标点符号替换成逗号之后的文件内容赋给临时字符串temp,假设本文件只有,? !等几种标点.
            (2)替换情况可以实际情况出现的标点而改变,注意最后两个个替换!!一是考虑到派生词如warm-hearted为一个词的情况
               可以把-替换成26个小写字母中的任意一个,从而保证派生词记为一个单词;二就是缩写词,应该把‘替换成为分隔符,
               替换时注意使用转义字符的使用,从而保证缩写词记为一个单词

            */
            temp = s.trim().replace(‘ ‘, ‘,‘).replace(‘.‘,‘,‘).replace(‘!‘,‘,‘).replace(‘?‘,‘,‘)
                    .replace(‘(‘,‘,‘).replace(‘)‘,‘,‘).replace(‘-‘,‘a‘).replace(‘\‘‘,‘,‘);
            System.out.println("\n替换成逗号之后的文件内容:\n"+temp+"\n");
            String[] data = temp.split(",");

            System.out.println("空格总个数: "+space+"    问号总个数:"+qm
                    +"    叹号总个数: "+excl+"    逗号总个数:"+comma+"    其他标点个数: "+other);//打印出空格总个数
            System.out.println("\n单词的总个数为:"+data.length);

        }
    }
}

运行结果:

简单的方法来统计文件中单词和各种标点符号个数

时间: 2024-10-11 18:10:06

简单的方法来统计文件中单词和各种标点符号个数的相关文章

统计文件中单词的频率,给出前N的单词

package test10; import java.io.*; import java.util.*; import java.util.Map.Entry; public class Frequency { public static int n=0;// public static void main(String[] args) { Scanner sc=new Scanner(System.in); String s; int count=0; int num=1; //作为File

统计文件中单词个数

import sys import string #import collections if len(sys.argv) == 1 or sys.argv[1] in {"-h", "--help"}: print("usage: uniqueword filename_1 filename_2 ... filename_n") sys.exit() else: words = {} # words = collections.defaultd

python编程:统计文件中单词出现次数

f=open("2.txt",'r')ll=f.read()'''将空格都取代为逗号,方便后面的split()'''ll=ll.replace(" ",',') '''防止由于文档编辑不规范出现双逗号的情况'''ll=ll.replace(",,",',')l=ll.split("\n")rows=[]dic={}for i in l: row=i.split(",") rows.append(row)fo

Linux统计文件中单词出现的次数

grep -E "\b[[:alpha:]]+\b"  /etc/fstab  -o | sort | uniq -c -E 使用正则进行匹配 \b : backspace 退格 print 参数 表示每行匹配完了回车 [[:alpha:]] : 代表所有字符 sort 去重 uniq -c 排序 -c 行首加出现的次数 原文地址:https://www.cnblogs.com/S--S/p/10224417.html

小例子: 统计文件中某个字符串出现的个数(grep + wc)

方法一: $ grep -o 'keywords' < file | wc -l 方法二: $ cat file | grep 'keywords' | wc -l eg:统计反斜线/出现的次数 $ echo "/home/ubu/Music/liu138/WorkReport/VENUS/vimjava.class.templet" | grep -o / | wc -l 说明: -o, Print  only  the  matched (non-empty) parts o

统计文件中制定词汇出现的次数

统计文件中"牛客"出现的次数: grep -o "查找单词" "查找的文件"| wc -l grep -o "查找单词" "查找的文件": -o 表示精确匹配,没有-o,只会显示要查找单词所出现的那一行 来自为知笔记(Wiz)

学c语言做练习之?统计文件中字符的个数

统计文件中字符的个数(采用命令行参数) #include<stdio.h> #include<stdlib.h> int main(int argc, char *argv[]) {  char ch;  FILE *fp;  long count=0;    if(argc !=2)  {   printf("文件名是:%s\n",argv[0]);   exit(EXIT_FAILURE);  }  if ((fp=fopen(argv[1],"r

使用IndexOf统计文件中某一词语出现次数

1 #region 统计文件中某一词语出现次数. 2 3 while (true) { 4 Console.WriteLine("请输入要查询的词语:"); 5 string word = Console.ReadLine(); 6 string[] novelArr = File.ReadAllLines("xiyou.txt", Encoding.Default); 7 int count = 0;//计数变量 8 int index = 0;//每行的 初始索

java统计字符串中字符及子字符串个数

import java.util.Scanner;public class Counter { static Scanner scanner = new Scanner(System.in); public static void count(String s) { int low, upper, num, others; low = upper = num = others = 0; for (int i = 0; i < s.length(); i++) { if (Character.is