1 英文小说存于一个文本文件中。 2 待统计的词汇集合要一次输入完毕。 3 程序的输出结果是每个词的出现次数和出现位置所在行的行号,格式自行设计。(java程序)
时间: 2024-02-23 18:57:57 浏览: 72
以下是一个简单的Java程序实现:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class WordCounter {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入待统计的词汇,以空格分隔:");
String[] words = scanner.nextLine().trim().split("\\s+");
Map<String, Integer> counter = new HashMap<>();
for (String word : words) {
counter.put(word, 0);
}
try (BufferedReader reader = new BufferedReader(new FileReader("novel.txt"))) {
String line;
int lineNumber = 0;
while ((line = reader.readLine()) != null) {
lineNumber++;
for (String word : words) {
int index = line.indexOf(word);
while (index >= 0) {
counter.put(word, counter.get(word) + 1);
System.out.println(word + " 出现在第 " + lineNumber + " 行,第 " + (index + 1) + " 个字符处");
index = line.indexOf(word, index + 1);
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("词汇统计结果如下:");
for (String word : words) {
System.out.println(word + ": " + counter.get(word) + " 次");
}
}
}
```
该程序首先从用户输入中获取待统计的词汇,然后遍历词汇并将其初始化为出现次数为0的计数器。接着,程序读取文本文件中的每一行,对于每个待统计的词汇,在该行中查找其出现位置并更新计数器,同时输出出现位置所在行的行号和字符位置。最后,程序输出词汇的统计结果。
需要注意的是,该程序仅实现了最基本的功能,还有很多待完善的地方,例如文件路径的灵活配置、对不同大小写的词汇进行统计等。