ในระหว่างที่ฉันทำงานกับฐานข้อมูลฉันสังเกตเห็นว่าฉันเขียนสตริงการสืบค้นและในสตริงนี้ฉันต้องใส่ข้อ จำกัด หลายประการในคำสั่ง where-clause จาก list / array / collection ควรมีลักษณะดังนี้:
select * from customer
where customer.id in (34, 26, ..., 2);
คุณสามารถทำให้สิ่งนี้ง่ายขึ้นโดยลดสิ่งนี้ให้เหลือเพียงคำถามที่คุณมีคอลเล็กชันของสตริงและต้องการสร้างรายการที่คั่นด้วยจุลภาคของสตริงนี้ในสตริงเดียว
แนวทางของฉันที่ฉันใช้จนถึงตอนนี้ก็เป็นเช่นนั้น:
String result = "";
boolean first = true;
for(String string : collectionOfStrings) {
if(first) {
result+=string;
first=false;
} else {
result+=","+string;
}
}
แต่นี่เป็นอย่างที่คุณเห็นน่าเกลียดมาก คุณไม่สามารถเห็นสิ่งที่เกิดขึ้นในรูปลักษณ์แรกโดยเฉพาะอย่างยิ่งเมื่อสตริงที่สร้างขึ้น (เช่นแบบสอบถาม SQL ทุกตัว) มีความซับซ้อน
วิธีที่สง่างาม (เพิ่มเติม) ของคุณคืออะไร?