【问题标题】:Appending a StringBuilder to another StringBuilder将 StringBuilder 附加到另一个 StringBuilder
【发布时间】:2018-09-22 08:57:22
【问题描述】:

我编写了一些创建大量字符串的代码。为了避免一遍又一遍地创建昂贵的字符串,我使用了 java StringBuilder 类。

我的代码有点像这样:

public String createString(){
  StringBuilder stringBuilder = new StringBuilder();
  for(int i = 0; i < Integer.MAX_VALUE ; i++){ //its not actually this, but it's a large loop. 
      stringBuilder.append(appendString())
  }
  return stringBuilder.toString();
}

appendString 方法还实例化 StringBuilder 并附加到它。

为了节省时间,我注意到我可以让我的appendString 方法返回StringBuilder,而不是String,这样可以避免使用.toString() 方法返回stringBuilder,如下所示:

public StringBuilder appendString(){
  StringBuilder appendBuilder = new StringBuilder();
  appendBuilder.append("whatever");
  return appendBuilder;
}

这一切都很好,直到我查看了StringBuilder 文档并意识到StringBuilder 类上没有append(StringBuilder stringBuilder) 方法,只有append(String string)

所以我的问题是,这段代码是如何运行的?是否将StringBuilder 转换为String

【问题讨论】:

    标签: java string stringbuilder


    【解决方案1】:

    StringBuilder 有一个public StringBuilder append(CharSequence s) 方法。 StringBuilder 实现了CharSequence 接口,因此您可以将StringBuilder 传递给该方法。

    【讨论】:

      【解决方案2】:

      有很多append() 重载,包括append(CharSequence cs)。字符串以自己的方法处理,其他没有自己重载的CharSequences 由更通用的方法处理。

      有趣的是append(StringBuffer sb)

      【讨论】:

        猜你喜欢
        • 2017-12-10
        • 2011-12-31
        • 2011-05-15
        • 2016-04-05
        • 2013-06-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-23
        相关资源
        最近更新 更多