用java写一个算法,处理20000字的字符串,遇到换行符\n就拆分且需要保留换行符
时间: 2024-10-14 21:14:15 浏览: 20
php字符串的替换,分割和连接方法
在Java中,处理大量文本数据并按换行符拆分可以使用`String.split()`函数配合`StringBuilder`或者`List<String>`来存储每一行内容。下面是一个简单的示例,展示了如何完成这个任务:
```java
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
// 假设输入的字符串很长,包含20000字
String longString = "这是一个非常长的字符串,\n包含了20000个字符。\n这里还有更多行...";
// 使用StringBuilder积累每一行的内容
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < longString.length(); ) {
int newlineIndex = longString.indexOf('\n', i); // 查找下一个换行符的位置
if (newlineIndex == -1) { // 如果字符串中没有更多换行符
stringBuilder.append(longString.substring(i)); // 添加剩余部分
break;
} else {
stringBuilder.append(longString.substring(i, newlineIndex + 1)); // 添加到StringBuilder,包括换行符
i = newlineIndex + 1; // 更新搜索起始位置
}
}
List<String> lines = new ArrayList<>();
// 将StringBuilder转换成List<String>
for (String line : stringBuilder.toString().split("\n")) {
lines.add(line);
}
// 打印每行内容
for (String line : lines) {
System.out.println(line);
}
}
}
```
在这个程序中,我们遍历字符串,每当找到换行符`\n`就将其添加到`StringBuilder`,然后将`StringBuilder`的内容按照换行符分割成列表。这样就能保证每个元素都是完整的行,同时保留了换行符。
阅读全文