java - 为什么字符串连接与pip行在java中什么都不返回(空字符串)?
String product="";
for(Tar t:tars){
product.concat(t.product.concat("|"));
}
System.out.println(product);
结果什么都没有(空字符串)。
java - 为什么字符串连接与pip行在java中什么都不返回(空字符串)?
String product="";
for(Tar t:tars){
product.concat(t.product.concat("|"));
}
System.out.println(product);
结果什么都没有(空字符串)。
String#concat
返回一个连接的字符串,它不会修改它。字符串在 Java 中是不可变的。
所以...
product = product.concat(t.product.concat("|"));
但是,我建议使用StringBuilder,其中字符串复制在循环中发生。
改为使用StringBuilder
。
StringBuilder product=new StringBuilder();
for(Tar t:tars){
product.append(t.product).append("|");
}
System.out.println(product.toString());
如果集合相当大,我建议使用 aStringBuilder
来构建所需的字符串,而不是使用字符串连接。它将提高性能,尽管会稍微提高一点。
另请参阅Java 中 toString() 中的 StringBuilder 与字符串连接。
而且,直接从马嘴里,
将指定的字符串连接到此字符串的末尾。
如果参数字符串的长度为
0
,则返回此String
对象。否则,将String
创建一个新对象,表示一个字符序列,该字符序列是由该String
对象表示的字符序列和由参数字符串表示的字符序列的串联。