最近、Java アプリで作業しているときに、コンマ区切りの値のリストを組み立てて別の Web サービスに渡す必要がありましたが、事前に要素がいくつあるかわからなかったのです。頭のてっぺんから思いついたのは、次のようなものでした。
public String appendWithDelimiter( String original, String addition, String delimiter ) {
if ( original.equals( "" ) ) {
return addition;
} else {
return original + delimiter + addition;
}
}
String parameterString = "";
if ( condition ) parameterString = appendWithDelimiter( parameterString, "elementName", "," );
if ( anotherCondition ) parameterString = appendWithDelimiter( parameterString, "anotherElementName", "," );
いたるところに文字列が作成されているため、これは特に効率的ではありませんが、最適化よりも明確にするつもりでした。
Ruby では、代わりに次のようなことができます。これははるかにエレガントに感じます。
parameterArray = [];
parameterArray << "elementName" if condition;
parameterArray << "anotherElementName" if anotherCondition;
parameterString = parameterArray.join(",");
しかし、Java には結合コマンドがないため、これに相当するものを見つけることができませんでした。
では、Java でこれを行う最善の方法は何でしょうか?