java 统计字符串数量 已知一段程序或字符串,例如:There are some books on the desk. 1.该程序或字符串从文件读入; 2.统计非空格字符个数和字符串个数(不包含子串); 3.统计结果存入另一个文件; 简单易懂
时间: 2024-09-13 10:14:14 浏览: 63
在 Java 中,我们可以使用流式处理和正则表达式来完成这个任务。这里是一个简单的示例,假设输入文件名为`input.txt`,输出文件名为`output.txt`:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.stream.Collectors;
public class StringCount {
public static void main(String[] args) {
// 从文件读取内容
try (BufferedReader reader = new BufferedReader(new FileReader("input.txt"))) {
String line;
StringBuilder content = new StringBuilder();
// 拼接每一行的内容
while ((line = reader.readLine()) != null) {
content.append(line);
content.append("\n");
}
// 使用正则表达式统计非空格字符个数
int nonSpaceChars = content.toString().replaceAll("\\s+", "").length();
// 使用换行符分隔字符串,统计字符串数量
int stringCount = content.toString().split("\\r?\\n").length - 1; // 减一是因为最后的'\n'会被忽略
// 存储到输出文件
writeToFile(nonSpaceChars, stringCount, "output.txt");
} catch (IOException e) {
System.err.println("Error reading file: " + e.getMessage());
}
}
private static void writeToFile(int nonSpaceChars, int stringCount, String outputPath) {
try (FileWriter writer = new FileWriter(outputPath)) {
writer.write("Non-space characters: " + nonSpaceChars + "\n");
writer.write("String count: " + stringCount + "\n");
} catch (IOException e) {
System.err.println("Error writing to file: " + e.getMessage());
}
}
}
```
运行此程序,它会读取`input.txt`中的内容,统计其中的非空格字符数量,并计算独立的字符串数量(不包括子串),然后将结果写入`output.txt`文件。
阅读全文