gpt4 book ai didi

java字符串替换和内存

转载 作者:行者123 更新时间:2023-11-30 04:00:46 24 4
gpt4 key购买 nike

如果我有一个 Java 代码段,例如:

String description = someFunctionCall();

anotherFunction( description.replace(",", " " ).replace( ".", " " ) );

创建了多少字符串以便稍后进行垃圾收集?如何使多次替换更高效?

最佳答案

String.replace(char, char) 仅在实际发生替换时创建一个新字符串。

如果您需要替换有限的字符集,或者需要对不同的输入字符使用不同的替换,那么您应该使用 StringBuilder 并使用 StringBuilder.charAt() 和 StringBuilder.setCharAt() 方法手动迭代它来替换单独的字符。除了 StringBuilder 本身和生成的 String 之外,此方法不会创建任何其他对象。

您可以使用 String.replaceAll(regex, replacement) 甚至可以通过 Pattern.compile(regex) 预编译正则表达式,然后像pattern.matcher(inputString).replaceAll(replacement)一样重用该 Pattern 对象。这种方法将允许您看似在一次调用中执行替换,但它会在幕后创建许多额外的符合 gc 条件的对象。

关于java字符串替换和内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22033785/

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