【问题标题】:Why there is no StringBuilder.replace() in Java为什么 Java 中没有 StringBuilder.replace()
【发布时间】:2017-05-30 20:03:06
【问题描述】:

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

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

我查了发现

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

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

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

【问题讨论】:

  • 有一个replace(int, int, String) 方法和一个indexOf(String, int) 方法。我想你可以使用这些来编写你自己的replace(String, String) 方法。
  • 文档没有提到这件事,这就是我来这里的原因!
  • +jsheeran 这不是 OP 想要实现的目标。
  • @Kayaman-- 不要比较苹果和橘子,我在这里谈论的是两种语言都具有的相似功能。

标签: java string stringbuilder


【解决方案1】:

来自documentation

StringBuilder 对象类似于 String 对象,只是它们可以是 修改的。在内部,这些对象被视为可变长度 包含一系列字符的数组。在任何时候,长度 并且序列的内容可以通过方法调用来改变

StringBuilder::replace 就像:

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

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

【讨论】:

    猜你喜欢
    • 2012-02-28
    • 1970-01-01
    • 2012-01-10
    • 2012-02-02
    • 2014-08-04
    • 2012-05-14
    • 2012-06-17
    相关资源
    最近更新 更多