Veritabanları ile çalışmam sırasında sorgu dizeleri yazdığımı fark ettim ve bu dizelerde bir listeden / diziden / koleksiyondan where-cümlesine birkaç kısıtlama koymam gerekiyor. Şöyle görünmeli:
select * from customer
where customer.id in (34, 26, ..., 2);
Bunu, dizelerden oluşan bir koleksiyonunuz olduğu ve bu dizelerin virgülle ayrılmış bir listesini yalnızca bir dizede oluşturmak istediğiniz sorusuna indirgeyerek basitleştirebilirsiniz.
Şimdiye kadar kullandığım yaklaşımım şöyle bir şey:
String result = "";
boolean first = true;
for(String string : collectionOfStrings) {
if(first) {
result+=string;
first=false;
} else {
result+=","+string;
}
}
Ama gördüğünüz gibi bu çok çirkin. İlk bakışta orada ne olduğunu göremezsiniz, özellikle inşa edilen dizeler (her SQL sorgusu gibi) karmaşıklaştığında.
(Daha) zarif yolunuz nedir?