某些模式的字符串替换为某些模式

时间:2012-11-29 21:00:51

标签: java

我有一个巨大的字符串,我需要替换

Pattern A to pattern B
Pattern C to Pattern D
pattern E to pattern F

像5或6次我必须更换字符串的某些部分。

如果我执行直接字符串操作来逐个替换它们,则需要很大的堆空间。

replaceAll().replaceAll().replaceALL

pattern.compile(“(pattern a | patternc)”);他不是我bcoz我们只能用1 parrten x替换这种类型的模式。

这可能是一种记忆效率更高的方法。

正则表达式有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

我通常信任apache并且他们拥有你需要的东西,但是我无法评论他们实现多个字符串替换的内存效率

Apache StringUtils.ReplaceEachRepeatedly

从查看源代码看起来它似乎使用StringBuffer操作和递归调用,所以它应该有点内存效率(我不认为你的堆栈空间不足)

Linky to the source code to the Apache's ReplaceEach

编辑:Apache Commons Lang版本3实际上使用StringBuilder并尝试在字符串替换期间最小化内存使用。我强烈建议您查看源代码或直接使用库。