为什么字符串连接与pip行在java中没有返回任何内容(空字符串)?
String product="";
for(Tar t:tars){
product.concat(t.product.concat("|"));
}
System.out.println(product);
结果不算什么(空字符串)。
答案 0 :(得分:9)
String#concat
返回一个连接的字符串,它不会修改它。字符串在Java中是不可变的。
因此...
product = product.concat(t.product.concat("|"));
但是,我建议使用StringBuilder,其中字符串复制在循环中发生。
答案 1 :(得分:1)
改为使用StringBuilder
。
StringBuilder product=new StringBuilder();
for(Tar t:tars){
product.append(t.product).append("|");
}
System.out.println(product.toString());
答案 2 :(得分:1)
如果集合相当大,我建议使用StringBuilder
来构建所需的字符串,而不是使用字符串连接。它会提高性能,虽然略有提升。
另见StringBuilder vs String concatenation in toString() in Java。
另外,直接从马的嘴里,
将指定的字符串连接到此字符串的末尾。
如果参数字符串的长度为
0
,则此String
对象为。{ 回。否则,将创建一个新的String
对象,表示一个 字符序列,是字符序列的串联 由此String
对象和字符序列表示 由参数字符串表示。