ピップラインを使用した文字列連結がJavaで何も返さない(空の文字列)のはなぜですか?
String product="";
for(Tar t:tars){
product.concat(t.product.concat("|"));
}
System.out.println(product);
結果は何もありません(空の文字列)。
ピップラインを使用した文字列連結が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());
コレクションがかなり大きい場合は、StringBuilder
文字列の連結を使用する代わりに、を使用して目的の文字列を作成することをお勧めします。わずかではありますが、パフォーマンスが向上します。
JavaのtoString()でのStringBuilderとStringの連結も参照してください。
また、馬の口からまっすぐに、
指定された文字列をこの文字列の最後に連結します。
引数文字列の長さが、の場合、
0
このString
オブジェクトが返されます。それ以外の場合は、このオブジェクトによって表される文字シーケンスと引数文字列によって表される文字シーケンスを連結した文字シーケンスを表す新しいString
オブジェクトが作成されます。String