0

ピップラインを使用した文字列連結が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

コレクションがかなり大きい場合は、StringBuilder文字列の連結を使用する代わりに、を使用して目的の文字列を作成することをお勧めします。わずかではありますが、パフォーマンスが向上します。

JavaのtoString()でのStringBuilderとStringの連結も参照してください。

また、馬の口からまっすぐに、

String#concat

指定された文字列をこの文字列の最後に連結します。

引数文字列の長さが、の場合、0このStringオブジェクトが返されます。それ以外の場合は、このオブジェクトによって表される文字シーケンスと引数文字列によって表される文字シーケンスを連結した文字シーケンスを表す新しいStringオブジェクトが作成されます。String

于 2012-08-21T13:40:24.517 に答える