Während ich in einer Java-App arbeitete, musste ich kürzlich eine durch Kommas getrennte Liste von Werten zusammenstellen, um sie an einen anderen Webdienst zu übergeben, ohne vorher zu wissen, wie viele Elemente vorhanden sein würden. Das Beste, was ich mir auf den Kopf stellen konnte, war ungefähr so:
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", "," );
Mir ist klar, dass dies nicht besonders effizient ist, da überall Zeichenfolgen erstellt werden, aber ich wollte mehr Klarheit als Optimierung.
In Ruby kann ich stattdessen so etwas tun, was sich viel eleganter anfühlt:
parameterArray = [];
parameterArray << "elementName" if condition;
parameterArray << "anotherElementName" if anotherCondition;
parameterString = parameterArray.join(",");
Da Java jedoch keinen Join-Befehl hat, konnte ich nichts Äquivalentes herausfinden.
Was ist der beste Weg, dies in Java zu tun?