用java写一个算法,比较处理20000字的字符串,遇到换行符\n就拆分,split和字符串遍历的耗时,且需要保留换行符
时间: 2024-10-14 09:14:02 浏览: 29
在Java中,我们可以使用`String.split()`函数来按照换行符`\n`拆分字符串,并使用`System.currentTimeMillis()`来测量操作的时间消耗。这里我们首先编写一个简单的测试方法来进行比较:
```java
public class Main {
public static void main(String[] args) {
String largeString = "这是一个大字符串,有20000个字符,包含许多换行符\n...\n更多内容...";
// 使用 split() 和时间戳开始
long startSplit = System.currentTimeMillis();
String[] partsSplit = largeString.split("\n");
long endSplit = System.currentTimeMillis();
// 使用遍历和时间戳开始
long startTraversal = System.currentTimeMillis();
int index = 0;
for (String part : largeString.split("\n")) { // 注意这里不需要额外的数组分配
if (part.endsWith("\n")) {
part = part.substring(0, part.length() - 1); // 去除尾部的换行符
}
index++; // 这里也可以记录长度或其他信息
}
long endTraversal = System.currentTimeMillis();
// 输出结果
System.out.println("split()耗时: " + (endSplit - startSplit) + "毫秒");
System.out.println("遍历并去除非必要换行耗时: " + (endTraversal - startTraversal) + "毫秒");
//
阅读全文