Während meiner Arbeit mit Datenbanken habe ich festgestellt, dass ich Abfragezeichenfolgen schreibe und in diese Zeichenfolgen muss ich die where-Klausel aus einer Liste / einem Array / einer Sammlung mit mehreren Einschränkungen versehen. Sollte so aussehen:
select * from customer
where customer.id in (34, 26, ..., 2);
Sie können dies vereinfachen, indem Sie dies auf die Frage reduzieren, dass Sie eine Sammlung von Zeichenfolgen haben und eine durch Kommas getrennte Liste dieser Zeichenfolgen in nur einer Zeichenfolge erstellen möchten.
Mein Ansatz, den ich bisher verwendet habe, ist ungefähr so:
String result = "";
boolean first = true;
for(String string : collectionOfStrings) {
if(first) {
result+=string;
first=false;
} else {
result+=","+string;
}
}
Aber das ist, wie Sie sehen können, sehr hässlich. Sie können auf den ersten Blick nicht sehen, was dort passiert, insbesondere wenn die erstellten Zeichenfolgen (wie jede SQL-Abfrage) kompliziert werden.
Was ist Ihre (elegantere) Art?