相关疑难解决方法(0)

StringBuilder vs Java中toString()的字符串连接

鉴于toString()下面的两个实现,首选哪一个:

public String toString(){
    return "{a:"+ a + ", b:" + b + ", c: " + c +"}";
}
Run Code Online (Sandbox Code Playgroud)

要么

public String toString(){
    StringBuilder sb = new StringBuilder(100);
    return sb.append("{a:").append(a)
          .append(", b:").append(b)
          .append(", c:").append(c)
          .append("}")
          .toString();
}
Run Code Online (Sandbox Code Playgroud)

更重要的是,鉴于我们只有3个属性,它可能没有什么区别,但你会在什么时候从+concat 切换到 StringBuilder

java string performance stringbuilder concatenation

889
推荐指数
12
解决办法
34万
查看次数

为什么用+添加字符后,我的字符串变成整数而不是字母?

这就是任务:给定一个字符串,返回一个字符串,其中原始字符中的每个字符都有两个字符。

而且我不明白为什么它的输出是数字而不是字母,我试过不起作用?

public String doubleChar(String str) {
  String s = "";
  for(int i=0; i<str.length(); i++){
  s +=  str.charAt(i) + str.charAt(i);

  }
    return s;
}
Run Code Online (Sandbox Code Playgroud)

预期:

doubleChar(“ The”)吗?“ Tthhee”

doubleChar(“ AAbb”)吗?“ AAAAbbbb”

输出:

doubleChar(“ The”)吗?“ 168208202”

doubleChar(“ AAbb”)吗?“ 130130196196”

java string

35
推荐指数
4
解决办法
3183
查看次数

什么时候应该显式使用StringBuilder?

据我所知,当我做String baz = "foo" + "bar" + "123"Java编译器时,内部用一个替换表达式StringBuilder.然而,我们的Java老师告诉我们,总是StringBuilder明确使用明确的...

我是否正确假设我需要在连接内部循环时显式使用StringBuilder,如Stack Overflow问题字符串生成器与字符串连接的答案中所示?是否有其他情况下,你应该明确地使用StringBuilder,而不是++=

java string stringbuilder concatenation

21
推荐指数
1
解决办法
2481
查看次数

Android StringBuilder vs String Concatenation

我正在阅读此文档页面,http://developer.android.com/reference/android/util/Log.html.

这部分引起了我的注意:

提示:当你拨打电话时不要忘记

Log.v(TAG, "index=" + i);

当您构建要传递给Log.d的字符串时,编译器使用StringBuilder并且至少发生三次分配:StringBuilder本身,缓冲区和String对象.实际上,还有另一个缓冲区分配和复制,对gc的压力更大.这意味着如果您的日志消息被过滤掉,那么您可能正在进行大量工作并产生大量开销.

这意味着Android编译器正在采用字符串连接(+)并将它们转换为StringBuilder和append语句.

我的假设是正确的还是更好地手动使用StringBuilder而不是字符串连接?

string stringbuilder android string-concatenation

14
推荐指数
1
解决办法
3308
查看次数