编写一个程序,程序实现对用户指定的文本文件中的英文字符和字符串的个数进行统计的功能,并将结果根据用户选择输出至结果文件或屏幕。 1) 构建统计类,该类实现对I/O的操纵;实现对文本文件中英文字符、字符串的统计;实现对统计结果的输出。 2) 构建测试类,该类实现与用户的交互,向用户提示操作信息,并接收用户的操作请求。
时间: 2024-02-18 15:05:23 浏览: 49
基于Python实现的一个命令行文本计数统计程序,可统计纯英文txt文本中的字符数,单词数,句子数,Python文件行数
好的,以下是一个简单实现上述需求的Java程序,希望对您有所帮助。
```java
import java.io.*;
import java.util.Scanner;
public class TextFileCounter {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要统计的文本文件路径:");
String filePath = scanner.nextLine();
try {
File file = new File(filePath);
FileReader reader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(reader);
String line;
int charCount = 0;
int wordCount = 0;
while ((line = bufferedReader.readLine()) != null) {
charCount += line.length();
wordCount += line.split("\\s+").length;
}
bufferedReader.close();
reader.close();
System.out.println("字符数:" + charCount);
System.out.println("单词数:" + wordCount);
System.out.println("请选择输出方式:1-输出至屏幕,2-输出至结果文件");
int choice = scanner.nextInt();
if (choice == 2) {
System.out.println("请输入结果文件路径:");
scanner.nextLine();
String resultFilePath = scanner.nextLine();
File resultFile = new File(resultFilePath);
FileWriter writer = new FileWriter(resultFile);
BufferedWriter bufferedWriter = new BufferedWriter(writer);
bufferedWriter.write("字符数:" + charCount + "\n");
bufferedWriter.write("单词数:" + wordCount + "\n");
bufferedWriter.close();
writer.close();
System.out.println("结果已保存至文件:" + resultFilePath);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这个程序中,我们定义了一个 `TextFileCounter` 类,用于统计文本文件中的英文字符和字符串数量。`main` 方法中,我们先通过 `Scanner` 类获取用户输入的文本文件路径,然后使用 `FileReader` 和 `BufferedReader` 类读取文件,逐行统计字符数和单词数。最后,根据用户选择将结果输出至屏幕或者结果文件。
请注意,这个程序仅能统计英文字符和单词,对于其他语言或者带有标点符号的文本可能会有误差。如果需要更精确的统计结果,可以考虑使用正则表达式进行匹配。
阅读全文