编写一个java程序,程序实现对用户指定的文本文件中的英文字符和字符串的个数进行统计的功能,并将结果根据用户选择输出至结果文件或屏幕。 1)构建统计类,该类实现对I/O的操纵;实现对文本文件中英文字符、字符串的统计;实现对统计结果的输出。 构建测试类,该类实现与用户的交互,向用户提示操作信息,并接收用户的操作请求。
时间: 2024-02-17 18:05:21 浏览: 109
好的,我来为您解答这个问题。
首先,我们需要创建一个统计类,来实现对I/O的操作以及对文本文件中英文字符、字符串的统计。以下是一个简单的示例代码:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class TextFileStatistics {
private String fileName;
private int charCount;
private int wordCount;
public TextFileStatistics(String fileName) {
this.fileName = fileName;
this.charCount = 0;
this.wordCount = 0;
}
public void count() throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(fileName));
String line;
while ((line = reader.readLine()) != null) {
charCount += line.length();
wordCount += line.trim().split("\\s+").length;
}
reader.close();
}
public int getCharCount() {
return charCount;
}
public int getWordCount() {
return wordCount;
}
}
```
接下来,我们需要创建一个测试类,来实现与用户的交互,并接收用户的操作请求。以下是一个简单的示例代码:
```java
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class TextFileStatisticsTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入要统计的文件名:");
String fileName = scanner.nextLine();
TextFileStatistics statistics = new TextFileStatistics(fileName);
try {
statistics.count();
} catch (IOException e) {
System.out.println("文件读取错误:" + e.getMessage());
System.exit(1);
}
System.out.println("该文件中的字符数为:" + statistics.getCharCount());
System.out.println("该文件中的单词数为:" + statistics.getWordCount());
System.out.print("请选择要输出到哪里(1-屏幕,2-文件):");
int choice = scanner.nextInt();
if (choice == 1) {
System.out.println("字符数:" + statistics.getCharCount());
System.out.println("单词数:" + statistics.getWordCount());
} else if (choice == 2) {
System.out.print("请输入输出文件名:");
String outputFileName = scanner.next();
try {
FileWriter writer = new FileWriter(outputFileName);
writer.write("字符数:" + statistics.getCharCount() + "\n");
writer.write("单词数:" + statistics.getWordCount() + "\n");
writer.close();
} catch (IOException e) {
System.out.println("文件写入错误:" + e.getMessage());
System.exit(1);
}
System.out.println("结果已经输出到文件:" + outputFileName);
} else {
System.out.println("无效选择!");
}
}
}
```
以上代码中,我们使用了Scanner类来接收用户的输入,并使用FileWriter类来将统计结果输出到文件中。在测试类中,我们首先创建一个TextFileStatistics对象,并调用它的count()方法来进行统计。然后,根据用户的选择,我们将结果输出到屏幕或文件中。
希望这个示例代码对您有所帮助!
阅读全文