java读取txt文件,将每一行中的第一个字是第的行,其他行不是第开头的字,追加到上面是第开头的行上,组成一个list
时间: 2023-12-10 09:41:09 浏览: 83
可以使用Java的IO流和正则表达式来实现。
下面是一个示例代码,假设txt文件名为"test.txt",编码为UTF-8:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String fileName = "test.txt";
List<String> lines = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
String line;
String prevLine = null;
while ((line = br.readLine()) != null) {
if (isFirstLine(line)) {
if (prevLine != null) {
lines.set(lines.size() - 1, prevLine);
}
lines.add(line);
prevLine = null;
} else {
if (prevLine == null) {
prevLine = line;
} else {
prevLine += line;
}
}
}
if (prevLine != null) {
lines.set(lines.size() - 1, prevLine);
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(lines);
}
private static boolean isFirstLine(String line) {
Pattern pattern = Pattern.compile("^第\\d+行");
Matcher matcher = pattern.matcher(line);
return matcher.find();
}
}
```
这个程序会读取"test.txt"文件,将每行的内容保存到一个List中。如果某一行的开头是"第x行"的形式,就将这一行作为新的一条记录,否则将这一行追加到上一行结尾。最后输出这个List。
阅读全文