Во время моей работы с базами данных я заметил, что я пишу строки запросов, и в эти строки я должен наложить несколько ограничений в предложении where из списка / массива / коллекции. Должно выглядеть так:
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-запрос) усложняется.
Каков ваш (более) элегантный способ?