为什么Java中没有StringBuilder.replace()

时间:2017-05-30 10:10:19

标签: java string stringbuilder

来自.NET语言中的帖子String Builder Replace() is faster then string replace()

我想知道同样的答案对java是否有效。

我查了一下

StringBuilder builder = ...;
builder = new StringBuilder(builder.toString().replace("from", "to"));

效率低,因为StringBuilder.toString()是一项昂贵的操作。

为什么JAVA在字符串构建器类中没有replace方法?

1 个答案:

答案 0 :(得分:3)

来自documentation

  

StringBuilder 对象就像String对象,除了它们可以   改性。在内部,这些对象被视为可变长度   包含字符序列的数组。在任何时候,长度   并且可以通过方法调用来改变序列的内容

表示StringBuilder::replace就像:

public StringBuilder replace(int start, int end, String str)

而不是String::replace,因为它被视为数组而不是字符串