java针对给定(英文)文档,统计文档的段落数、单词数及每个字母出现的次数。
时间: 2023-12-19 08:05:47 浏览: 70
以下是一个Java程序,可以实现对给定英文文档的段落数、单词数以及每个字母出现的次数的统计:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class TextAnalyzer {
public static void main(String[] args) {
String fileName = "example.txt"; // 替换为你要统计的文档名称
int numParagraphs = 0; // 段落数
int numWords = 0; // 单词数
int[] letterCounts = new int[26]; // 每个字母出现的次数
try {
BufferedReader reader = new BufferedReader(new FileReader(fileName));
String line;
while ((line = reader.readLine()) != null) {
if (line.trim().equals("")) { // 如果是空行则认为是段落的分隔
numParagraphs++;
} else {
String[] words = line.split("\\s+"); // 使用空格分割单词
numWords += words.length;
for (String word : words) {
for (char c : word.toCharArray()) {
if (Character.isLetter(c)) { // 如果是字母则统计
letterCounts[Character.toLowerCase(c) - 'a']++;
}
}
}
}
}
reader.close();
} catch (IOException e) {
System.out.println("Error reading file: " + e.getMessage());
return;
}
System.out.println("Number of paragraphs: " + numParagraphs);
System.out.println("Number of words: " + numWords);
System.out.println("Letter counts:");
for (int i = 0; i < 26; i++) {
System.out.printf("%c: %d%n", 'a' + i, letterCounts[i]);
}
}
}
```
假设你有一个名为"example.txt"的文档,程序会输出以下内容:
```
Number of paragraphs: 3
Number of words: 56
Letter counts:
a: 13
b: 1
c: 4
d: 3
e: 11
f: 1
g: 1
h: 3
i: 5
j: 0
k: 0
l: 2
m: 1
n: 4
o: 4
p: 0
q: 0
r: 3
s: 2
t: 7
u: 1
v: 0
w: 0
x: 0
y: 1
z: 0
```
其中,"Number of paragraphs"表示段落数,"Number of words"表示单词数,"Letter counts"表示每个字母出现的次数。
阅读全文