gpt4 book ai didi

java - 多次使用 replaceAll() String 方法

转载 作者:行者123 更新时间:2023-11-29 09:29:51 24 4
gpt4 key购买 nike

我正在做一些文本预处理,我至少使用了 10 次 replaceAll() 方法。恐怕这开始变得低效了。

我的代码是这样的:

text = text.replaceAll(regex1, "rStr");
text = text.replaceAll(regex2, "rStr2");
.
.
.
text = text.replaceAll(regexn, "rStrn");

我以为我会使用 StringBuilder 以避免一直创建新字符串,但我没有注意到太大的区别。

StringBuilder sb = new StringBuilder();
sb.append(text.replaceAll(regex1, "rStr"));
sb.replace(0, sb.length(), sb.toString().replaceAll(regex2, "rStr2"));
.
.
.
sb.replace(0, sb.length(), sb.toString().replaceAll(regexn, "rStrn"));

有什么想法可以让这段代码更高效吗?

最佳答案

根据您的模式,您可以通过预编译它们获得不错的改进。 replaceAll 必须执行类似于 Pattern.compile(patternStr).matcher(this).replaceAll(replacement) 的操作。它不会缓存 Pattern,因此如果您只编译一次,您将看到改进,前提是代码被调用不止一次。

如果可以,请使用 String.replace() 而不是 String.replaceAll(),但这听起来有点像您需要模式。

关于java - 多次使用 replaceAll() String 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24042516/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com