Mientras trabajaba en una aplicación Java, recientemente necesité armar una lista de valores delimitados por comas para pasar a otro servicio web sin saber cuántos elementos habría de antemano. Lo mejor que se me ocurrió en la cabeza fue algo como esto:
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", "," );
Me doy cuenta de que esto no es particularmente eficiente, ya que se están creando cadenas por todas partes, pero estaba buscando más claridad que optimización.
En Ruby, puedo hacer algo como esto, que se siente mucho más elegante:
parameterArray = [];
parameterArray << "elementName" if condition;
parameterArray << "anotherElementName" if anotherCondition;
parameterString = parameterArray.join(",");
Pero como Java carece de un comando de unión, no pude encontrar nada equivalente.
Entonces, ¿cuál es la mejor manera de hacer esto en Java?