java 统计字符串数量 已知一段程序或字符串,例如:There are some books on the desk. 1.该程序或字符串从文件读入; 2.统计非空格字符个数和字符串个数(不包含子串); 3.统计结果存入另一个文件;
时间: 2024-09-13 16:14:13 浏览: 50
在Java中,你可以通过以下步骤来完成这个任务:
1. **读取文件内容**:
使用`java.io.BufferedReader`或`java.nio.file.Files.readAllLines`等方法从文件中读取文本内容。例如:
```java
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
public String readFileContent(String filePath) {
try {
return new String(Files.readAllBytes(Paths.get(filePath)), StandardCharsets.UTF_8);
} catch (IOException e) {
e.printStackTrace();
return null; // 处理文件读取异常
}
}
```
2. **统计字符和字符串**:
对于给定的字符串,你可以创建两个变量分别计算非空格字符数量和独立的字符串数量。可以使用正则表达式来分割字符串并忽略空字符串。这里是一个简单的示例:
```java
public void countCharactersAndStrings(String text) {
int nonSpaceCount = text.replaceAll("\\s", "").length(); // 去除所有空格
String[] words = text.split("\\W+"); // 使用非单词字符分割,忽略子串
int stringCount = words.length;
// 累加到全局变量或临时结果对象中
// ...
}
```
3. **将结果写入文件**:
完成统计后,你可以使用类似`java.io.FileWriter`或`java.nio.file.Files.write`的方法将结果保存到另一个文件中。这里仅给出基本思路:
```java
public void writeResultToFile(int nonSpaceCount, int stringCount, String outputPath) {
try {
FileWriter writer = new FileWriter(outputPath);
writer.append("Non-space characters: " + nonSpaceCount);
writer.append("\nStrings: " + stringCount);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
```
最后,结合以上三个部分,你可以在一个完整的`main`函数中实现整个流程:
```java
public static void main(String[] args) {
String inputFile = "input.txt";
String outputFile = "output.txt";
String fileContent = readFileContent(inputFile);
if (fileContent != null) {
countCharactersAndStrings(fileContent);
int nonSpaceCount = ...; // 获取之前计算的值
int stringCount = ...; // 获取之前计算的值
writeResultToFile(nonSpaceCount, stringCount, outputFile);
System.out.println("Results saved to " + outputFile);
} else {
System.out.println("Failed to read input file.");
}
}
```
阅读全文