java 编写一个程序,读取一个文本文件,并统计文件中单词的数量和出现频率。
时间: 2024-10-12 10:06:35 浏览: 45
java编写的文本分词后利用tfidf计算每个文档的单词的tfidf值,并保存到文件中.zip
在 Java 中编写一个程序来统计文本文件中单词的数量和频率,你可以按照以下步骤操作:
首先,你需要导入必要的 `java.io` 包来处理文件输入输出,以及 `java.util` 包中的 `HashMap` 和 `Scanner` 类:
```java
import java.io.*;
import java.util.HashMap;
import java.util.Scanner;
```
然后,创建一个方法来读取文件并解析内容:
```java
public static void wordCount(String filePath) {
HashMap<String, Integer> wordFrequency = new HashMap<>(); // 存储单词及其频率
try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = br.readLine()) != null) {
// 将每一行分割成单词列表
String[] words = line.toLowerCase().split("\\s+");
for (String word : words) {
if (!word.isEmpty()) { // 忽略空格、标点等非字母字符
wordFrequency.put(word, wordFrequency.getOrDefault(word, 0) + 1);
}
}
}
} catch (IOException e) {
System.err.println("Error reading file: " + e.getMessage());
}
// 输出结果
for (Map.Entry<String, Integer> entry : wordFrequency.entrySet()) {
System.out.println("单词: " + entry.getKey() + ", 出现次数: " + entry.getValue());
}
}
```
最后,你可以通过调用 `wordCount` 方法并传入你要分析的文件路径来运行这个程序:
```java
public static void main(String[] args) {
String filePath = "path_to_your_text_file.txt"; // 替换为你实际的文件路径
wordCount(filePath);
}
```
阅读全文