java实现英文词频统计(附完整源码)
时间: 2023-11-09 16:07:44 浏览: 96
好的,以下是Java实现英文词频统计的完整源码:
```java
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
public class WordCount {
public static void main(String[] args) {
String filePath = "input.txt"; //输入文件路径
Map<String, Integer> wordMap = new HashMap<String, Integer>();
try {
FileInputStream inputStream = new FileInputStream(filePath);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = bufferedReader.readLine()) != null) {
String[] words = line.split("[^a-zA-Z]+");
for (String word : words) {
if (word.length() == 0) {
continue;
}
if (wordMap.containsKey(word)) {
wordMap.put(word, wordMap.get(word) + 1);
} else {
wordMap.put(word, 1);
}
}
}
bufferedReader.close();
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Word Count:");
for (Map.Entry<String, Integer> entry : wordMap.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
```
这段代码实现了一个基本的英文词频统计程序,其中输入文件路径为`input.txt`,程序通过读取文件中的每一行,将其中的单词提取出来,并统计每个单词出现的次数。统计完成后,程序将结果输出到控制台上。
在实现中,我们使用了`HashMap`来存储单词和出现次数的对应关系,使用了正则表达式`[^a-zA-Z]+`来将每行文本拆分成单词。最后,我们遍历`HashMap`,输出结果。
阅读全文