Selama pekerjaan saya dengan database, saya perhatikan bahwa saya menulis string kueri dan dalam string ini saya harus meletakkan beberapa batasan di klausa di mana dari daftar / larik / koleksi. Akan terlihat seperti ini:
select * from customer
where customer.id in (34, 26, ..., 2);
Anda dapat menyederhanakan ini dengan menguranginya menjadi pertanyaan bahwa Anda memiliki kumpulan string dan ingin membuat daftar string ini dengan dipisahkan koma hanya dalam satu string.
Pendekatan yang saya gunakan sejauh ini adalah seperti itu:
String result = "";
boolean first = true;
for(String string : collectionOfStrings) {
if(first) {
result+=string;
first=false;
} else {
result+=","+string;
}
}
Tapi ini seperti yang bisa Anda lihat sangat jelek. Anda tidak dapat melihat apa yang terjadi di sana pada tampilan pertama, terutama ketika string yang dibangun (seperti setiap kueri SQL) menjadi semakin rumit.
Apa cara Anda (yang lebih) elegan?