Lorsque je travaillais dans une application Java, j'ai récemment dû assembler une liste de valeurs délimitées par des virgules pour passer à un autre service Web sans savoir combien d'éléments il y aurait à l'avance. Le mieux que j'ai pu trouver du haut de ma tête était quelque chose comme ça:
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", "," );
Je me rends compte que ce n'est pas particulièrement efficace, car il y a des chaînes en cours de création partout, mais j'allais plus pour la clarté que l'optimisation.
Dans Ruby, je peux faire quelque chose comme ça à la place, ce qui est beaucoup plus élégant:
parameterArray = [];
parameterArray << "elementName" if condition;
parameterArray << "anotherElementName" if anotherCondition;
parameterString = parameterArray.join(",");
Mais comme Java n'a pas de commande join, je n'ai rien trouvé d'équivalent.
Alors, quelle est la meilleure façon de le faire en Java?