【问题标题】:Using concatenation instead of stringbuilder in java在java中使用连接而不是stringbuilder
【发布时间】:2019-06-11 20:41:11
【问题描述】:

对于以下代码,我将如何使用连接而不是 StringBuilder 在以下方法中创建字符串? 我的老师说要使用串联而不是 StringBuilder。

private static String readAll(Reader rd) throws IOException {
    StringBuilder sb = new StringBuilder();
    int cp;
    while ((cp = rd.read()) != -1) {
      sb.append((char) cp);
    }
    return sb.toString();
  }

【问题讨论】:

  • 欢迎来到 SO!连接比 StringBuilder 慢。你这样做的理由是什么?如果必须,可以使用String s = ""; s += (char)cp;...
  • 使用String 代替StringBuilder+= 代替.append()。顺便说一句,你为什么想要那个?除了改变朋友的作业之外,实际上没有任何好处。
  • string += (char)cp;
  • 如果您要处理的字符串过多,通常不首选连接。它会创建太多的字符串,因为字符串是不可变的。如果您处理的字符串很少,您可以使用 sb.concat( ) 进行连接(您的 sb 对象应该是 String 类型)
  • @NikithaVangala 这不一定是真的。字符串连接(循环外)编译为使用StringBuilder

标签: java string concatenation stringbuilder


【解决方案1】:

这是一个相当简单的问题。但是,正如其他人所说,此代码的运行速度会比您的原始代码慢,但这里的知识就是答案

private static String readAll(Reader rd) throws IOException {
    String s = "";
    int cp;
    while ((cp = rd.read()) != -1) {
        s += ((char) cp);
    }
    return s;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 2016-12-17
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多