按照要求编写程序,统计一个英交交本交件中的字符数、单词数和行数。单词由空格和 逗号、句号、分号和感吸号这4 个标点符号分隔,文件名由键盘读入。 提示:使用 Scanher 类的将文件名由键盘输入;使用 BufferedReader 类读取文本文件
时间: 2024-05-06 18:15:22 浏览: 95
以下是Java代码实现:
```
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class FileStatistics {
public static void main(String[] args) {
try {
// 从键盘读取文件名
System.out.print("请输入文件名:");
Scanner scanner = new Scanner(System.in);
String fileName = scanner.nextLine();
// 使用 BufferedReader 读取文本文件
BufferedReader reader = new BufferedReader(new FileReader(fileName));
String line;
int charCount = 0;
int wordCount = 0;
int lineCount = 0;
while ((line = reader.readLine()) != null) {
// 统计行数
lineCount++;
// 统计字符数
charCount += line.length();
// 使用 StringTokenizer 分隔单词
StringTokenizer tokenizer = new StringTokenizer(line, " ,.;!");
while (tokenizer.hasMoreTokens()) {
// 统计单词数
wordCount++;
tokenizer.nextToken();
}
}
// 输出统计结果
System.out.println("字符数:" + charCount);
System.out.println("单词数:" + wordCount);
System.out.println("行数:" + lineCount);
// 关闭 BufferedReader
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
使用 BufferedReader 可以按行读取文本文件,然后统计字符数、单词数和行数。在统计单词数时,使用 StringTokenizer 分隔单词。最后输出统计结果即可。
阅读全文