包含try和catch的英文文本词频统计的JAVA的代码怎么写
时间: 2023-06-04 17:07:48 浏览: 101
以下是包含try和catch的英文文本词频统计的JAVA代码:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class WordFrequencyCounter {
public static void main(String[] args) {
String fileName = "input.txt"; // 文件名
Map<String, Integer> freqMap = new HashMap<>(); // 存储单词频次的Map
try (BufferedReader br = new BufferedReader(new FileReader(fileName))) { // 读取文件并逐行处理
String line;
while ((line = br.readLine()) != null) {
String[] words = line.split("[^a-zA-Z]+"); // 以非字母字符为分隔符,分割每行字符串为单词数组
for (String word : words) {
if (word.length() > 0) { // 确保单词不为空
String lowerCaseWord = word.toLowerCase(); // 转换为小写字母
freqMap.put(lowerCaseWord, freqMap.getOrDefault(lowerCaseWord, 0) + 1); // 更新单词频次
}
}
}
} catch (IOException e) { // 捕捉IO异常
System.err.println("IOException: " + e.getMessage());
} catch (Exception e) { // 捕捉其他异常
System.err.println("Exception: " + e.getMessage());
}
// 输出结果
for (String word : freqMap.keySet()) {
System.out.println(word + ": " + freqMap.get(word));
}
}
}
```
以上代码中,使用了try-catch语句块,捕捉了IO异常和其他异常,保证程序的健壮性。同时,使用了HashMap来存储单词频次的统计结果。程序会按照字母顺序输出单词及其出现的次数。注意,此程序只能统计英文文本的单词频次。
阅读全文