使用JAVA代码实现在一个文本中统计单词频率
时间: 2023-06-03 10:06:58 浏览: 109
好的,我可以回答这个问题。以下是使用Java代码实现在一个文本中统计单词频率的示例代码:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.HashMap;
import java.util.Map;
public class WordFrequencyCounter {
public static void main(String[] args) {
String filePath = "path/to/your/file.txt";
Map<String, Integer> frequencyMap = countWordFrequency(filePath);
for (Map.Entry<String, Integer> entry : frequencyMap.entrySet()) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
}
public static Map<String, Integer> countWordFrequency(String filePath) {
Map<String, Integer> frequencyMap = new HashMap<>();
try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = br.readLine()) != null) {
String[] words = line.split("\\s+");
for (String word : words) {
String cleanedWord = word.toLowerCase().replaceAll("[^a-zA-Z0-9]", "");
if (cleanedWord.length() > 0) {
int count = frequencyMap.getOrDefault(cleanedWord, 0);
frequencyMap.put(cleanedWord, count + 1);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return frequencyMap;
}
}
```
你可以替换 `filePath` 变量为你想要统计单词频率的文件路径。这个程序会输出文件中每个单词的频率,忽略大小写和标点符号,并且不重复计算同一个单词在同一行中出现的次数。
阅读全文