java实现读取一篇英文文章,统计其中每个单词出现的次数并排序输出

这段Java代码演示了如何读取英文文章,使用正则表达式匹配单词,统计每个单词出现的次数,并将结果按次数排序输出到result.txt文件。程序首先读取指定文件,然后通过BufferedReader逐行读取内容,利用TreeMap存储单词及其出现次数,最后将统计结果写入新文件。
摘要由CSDN通过智能技术生成

代码:

要编写一个Java程序来读取文本文件并统计每个单词出现次数,按照词频从高到低输出,可以按照以下步骤进行: 1. 使用`FileReader`和`BufferedReader`来读取文本文件。 2. 读取文件的文本,使用`StringTokenizer`或`split`方法来分割单词。 3. 使用`HashMap`来存储每个单词及其出现次数。 4. 遍历`HashMap`,将键值对转移到一个列表,以便进行排序。 5. 使用`Collections.sort`对列表进行排序排序依据是单词出现次数。 6. 按照排序后的顺序输出单词及其出现次数。 下面是一个简化的代码示例: ```java import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.HashMap; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; public class WordFrequencyCounter { public static void main(String[] args) { String filePath = "path/to/your/textfile.txt"; // 替换为你的文件路径 HashMap<String, Integer> wordCountMap = new HashMap<>(); ArrayList<Map.Entry<String, Integer>> wordList = new ArrayList<>(); try (BufferedReader br = new BufferedReader(new FileReader(filePath))) { String word; while ((word = br.readLine()) != null) { word = word.toLowerCase(); // 将单词转换为小写 wordCountMap.put(word, wordCountMap.getOrDefault(word, 0) + 1); } } catch (IOException e) { e.printStackTrace(); } for (HashMap.Entry<String, Integer> entry : wordCountMap.entrySet()) { wordList.add(entry); } Collections.sort(wordList, new Comparator<Map.Entry<String, Integer>>() { @Override public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { return o2.getValue().compareTo(o1.getValue()); } }); for (Map.Entry<String, Integer> entry : wordList) { System.out.println(entry.getKey() + " : " + entry.getValue()); } } } ``` 这个程序首先读取文件,然后统计每个单词出现次数,并按照出现次数降序排序输出
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值