0

java - 为什么字符串连接与pip行在java中什么都不返回(空字符串)?

String product="";
for(Tar t:tars){
    product.concat(t.product.concat("|"));
}
System.out.println(product);

结果什么都没有(空字符串)。

4

3 回答 3

9

String#concat返回一个连接的字符串,它不会修改它。字符串在 Java 中是不可变的。

所以...

product = product.concat(t.product.concat("|"));

但是,我建议使用StringBuilder,其中字符串复制在循环中发生。

于 2012-08-21T13:37:44.080 回答
1

改为使用StringBuilder

StringBuilder product=new StringBuilder();
for(Tar t:tars){
            product.append(t.product).append("|");
}
System.out.println(product.toString());
于 2012-08-21T13:39:47.293 回答
1

如果集合相当大,我建议使用 aStringBuilder来构建所需的字符串,而不是使用字符串连接。它将提高性能,尽管会稍微提高一点。

另请参阅Java 中 toString() 中的 StringBuilder 与字符串连接

而且,直接从马嘴里,

String#concat

将指定的字符串连接到此字符串的末尾。

如果参数字符串的长度为0,则返回此String对象。否则,将String创建一个新对象,表示一个字符序列,该字符序列是由该String对象表示的字符序列和由参数字符串表示的字符序列的串联。

于 2012-08-21T13:40:24.517 回答