java编写一个程序,程序实现对用户指定的文本文件中的英文字符和字符串的个数进行统计的功能,并将结果根据用户选择输出至结果文件或屏幕。
时间: 2024-01-22 07:20:04 浏览: 76
以下是一个Java程序,可以实现对用户指定的文本文件中的英文字符和字符串的个数进行统计,并根据用户选择输出至结果文件或屏幕。
```java
import java.io.*;
public class TextAnalyzer {
public static void main(String[] args) {
BufferedReader reader = null;
BufferedWriter writer = null;
try {
// 获取用户输入的文件路径和输出方式
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入文件路径:");
String filePath = input.readLine();
System.out.print("请输入输出方式(1:输出至屏幕,2:输出至文件):");
String outputType = input.readLine();
// 统计英文字符和字符串的个数
int charCount = 0;
int stringCount = 0;
reader = new BufferedReader(new FileReader(filePath));
String line = null;
while ((line = reader.readLine()) != null) {
charCount += line.replaceAll("[^a-zA-Z]", "").length();
stringCount += line.split("[^a-zA-Z]+").length;
}
// 输出结果
if (outputType.equals("1")) {
System.out.println("英文字符数:" + charCount);
System.out.println("英文字符串数:" + stringCount);
} else if (outputType.equals("2")) {
System.out.print("请输入输出文件路径:");
String outputPath = input.readLine();
writer = new BufferedWriter(new FileWriter(outputPath));
writer.write("英文字符数:" + charCount + "\n");
writer.write("英文字符串数:" + stringCount + "\n");
writer.flush();
System.out.println("结果已输出至文件:" + outputPath);
} else {
System.out.println("无效的输出方式!");
}
} catch (IOException e) {
System.out.println("文件读写错误!");
} finally {
try {
if (reader != null) reader.close();
if (writer != null) writer.close();
} catch (IOException e) {
System.out.println("文件关闭错误!");
}
}
}
}
```
程序首先获取用户输入的文件路径和输出方式,然后使用 `BufferedReader` 读取文件内容,并使用正则表达式统计英文字符和字符串的个数。最后根据用户选择将结果输出至屏幕或文件中。注意要在程序结束时关闭文件流。
阅读全文