博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单词统计
阅读量:4556 次
发布时间:2019-06-08

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

这次的实验测试分为很多个小部分,由于个人能力有限,我只完成了前三个部分。其中第一个是统计文本中26个英文字幕出现的次数与比例,并降序排序:是自行确定欠多少个最多出现的单词

package piao;import java.io.BufferedReader;import java.io.FileReader;import java.text.NumberFormat;public class text0{    public static void main(String[] args) throws Exception {        BufferedReader br = new BufferedReader(new FileReader("D:\\java/eclipse/测试/piao.txt"));        int[] count  = new int[26];        char[] c = new char[1];        int len = br.read(c);        while(len!=-1) {            if(c[0]>='A'&&c[0]<='Z') {                int number = c[0];                count[number-65]++;            }            if(c[0]>='a'&&c[0]<='z') {                int number = c[0];                count[number-97]++;            }            len = br.read(c);        }        count=Paixu(count);        Print(count);        br.close();        }    public static int[] Paixu(int[] count) {        int temp;        int size=count.length;        for(int i=0;i
0) { char lowerCase = (char)(i+97); System.out.println(lowerCase+"("+count[i]+")"+"("+a[i]+"%)"); } } }}

第二部分是统计所有单词出现的次数并降序排序:

package piao;import java.io.BufferedReader;import java.io.FileReader;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;import java.util.Map;import java.util.TreeMap;import java.util.regex.Matcher;import java.util.regex.Pattern;public class text1 {         public static void main(String[] args) throws Exception {        BufferedReader re = new BufferedReader(new FileReader("D:\\java/eclipse/测试/piao.txt"));        StringBuffer buffer = new StringBuffer();        String line = null;        while ((line = re.readLine()) != null) {              buffer.append(line);        }        re.close();        Pattern expression = Pattern.compile("[a-zA-Z]+");// 定义正则表达式匹配单词        String string = buffer.toString();        Matcher matcher = expression.matcher(string);        Map
map = new TreeMap
(); String word = ""; int times = 0; while (matcher.find()) {
// 是否匹配单词 word = matcher.group();// 得到一个单词-树映射的键 if (map.containsKey(word)) {
// 如果包含该键,单词出现过 times = map.get(word);// 得到单词出现的次数 map.put(word, times + 1); } else { map.put(word, 1);// 否则单词第一次出现,添加到映射中 } } List
>list = new ArrayList
>(map.entrySet()); Collections.sort(list, new Comparator
>(){ // 排序,打印 public int compare(Map.Entry
left,Map.Entry
right) { return (left.getValue()).compareTo(right.getValue()); } }); int last = list.size() - 1; for (int i = last; i > 0; i--) { String key = list.get(i).getKey(); Integer value = list.get(i).getValue(); System.out.println(key + " :" + value); } }}

第三部分是自行确定欠多少个最多出现的单词:

package piao;import java.io.BufferedReader;import java.io.FileReader;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;import java.util.Map;import java.util.Scanner;import java.util.TreeMap;import java.util.regex.Matcher;import java.util.regex.Pattern;public class text2 {         public static void main(String[] args) throws Exception {        BufferedReader re = new BufferedReader(new FileReader("D:\\java/eclipse/测试/piao.txt"));        StringBuffer buffer = new StringBuffer();        String line = null;        while ((line = re.readLine()) != null) {              buffer.append(line);        }        re.close();        Pattern expression = Pattern.compile("[a-zA-Z]+");// 定义正则表达式匹配单词        String string = buffer.toString();        Matcher matcher = expression.matcher(string);        Map
map = new TreeMap
(); String word = ""; int times = 0; while (matcher.find()) {
// 是否匹配单词 word = matcher.group();// 得到一个单词-树映射的键 if (map.containsKey(word)) {
// 如果包含该键,单词出现过 times = map.get(word);// 得到单词出现的次数 map.put(word, times + 1); } else { map.put(word, 1);// 否则单词第一次出现,添加到映射中 } } List
>list = new ArrayList
>(map.entrySet()); Collections.sort(list, new Comparator
>(){ // 排序,打印 public int compare(Map.Entry
left,Map.Entry
right) { return (left.getValue()).compareTo(right.getValue()); } }); @SuppressWarnings("resource") Scanner in=new Scanner(System.in); System.out.println("输入前n个最常出现的单词:"); int n=in.nextInt(); int last = list.size() - 1; for (int i = last; i > last - n; i--) { String key = list.get(i).getKey(); Integer value = list.get(i).getValue(); System.out.println(key + " :" + value); } }}

 

转载于:https://www.cnblogs.com/yuanxiaochou/p/11065633.html

你可能感兴趣的文章
jquery的colorbox关闭并传递数据到父窗
查看>>
使用Nginx、Keepalived构建文艺负载均衡
查看>>
phpmyadmin 开放远程登录的权限
查看>>
linux安装gcc和gcc-c++
查看>>
qq登陆错误提示
查看>>
bzoj 1192: [HNOI2006]鬼谷子的钱袋 思维 + 二进制
查看>>
没写完,没调完,咕咕咕的代码
查看>>
Android Studio使用技巧:导出jar包
查看>>
Problem E. TeaTree - HDU - 6430 (树的启发式合并)
查看>>
Kafka序列化和反序列化与示例
查看>>
【Windows 8 Store App】学习一:获取设备信息
查看>>
实现Windows程序的数据更新
查看>>
win10下VS2010中文输入法切换为英文卡死
查看>>
retinex相关代码汇总
查看>>
Cortex-M3 异常返回值EXC_RETURN
查看>>
Objective-C语言-内存管理
查看>>
迅雷API:实现文件下载
查看>>
Socket编程实践(2) Socket API 与 简单例程
查看>>
print 与标准输出
查看>>
pytest单元测试框架(day01)
查看>>