编写一个程序,从一个文本文件中读取数据,统计分析数据中个个单词出现的次数。用java语言
时间: 2024-05-12 09:19:37 浏览: 128
以下是一个Java程序,可以从一个文本文件中读取数据并统计每个单词出现的次数:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.HashMap;
import java.util.Map;
public class WordCount {
public static void main(String[] args) {
String fileName = "input.txt"; // 输入文件名
Map<String, Integer> wordCountMap = new HashMap<>(); // 用于存储每个单词的出现次数
try {
BufferedReader reader = new BufferedReader(new FileReader(fileName));
String line;
while ((line = reader.readLine()) != null) { // 逐行读取数据
String[] words = line.split("\\s+"); // 将每行数据按空格分割成单词数组
for (String word : words) {
if (!wordCountMap.containsKey(word)) {
wordCountMap.put(word, 1); // 如果单词第一次出现,将其加入map中,并将其出现次数设为1
} else {
int count = wordCountMap.get(word);
wordCountMap.put(word, count + 1); // 如果单词已经出现过,将其出现次数加1
}
}
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
// 输出每个单词的出现次数
for (String word : wordCountMap.keySet()) {
int count = wordCountMap.get(word);
System.out.println(word + ": " + count);
}
}
}
```
在上述程序中,我们首先定义了一个`wordCountMap`,用于存储每个单词的出现次数。然后,我们使用`BufferedReader`类从指定的文件中逐行读取数据,并将每行数据按空格分割成单词数组。接着,我们遍历每个单词,如果它是第一次出现,则将其加入`wordCountMap`中,并将其出现次数设为1;否则,我们从`wordCountMap`中取出该单词的出现次数,并将其加1。最后,我们遍历`wordCountMap`,输出每个单词的出现次数。
需要注意的是,在本程序中,我们使用了正则表达式`\s+`将每行数据按空格分割成单词数组。这里的`\s`表示任意的空白字符,包括空格、制表符、换行符等。`\s+`表示一个或多个空白字符。
阅读全文