Я никогда не находил изящный (э) способ сделать следующее.
Скажем, у меня есть список / массив строк.
abc
def
ghi
jkl
И я хочу объединить их в одну строку, разделенную запятой, следующим образом:
abc,def,ghi,jkl
В Java, если я напишу что-то вроде этого (простите за синтаксис),
String[] list = new String[] {"abc","def","ghi","jkl"};
String str = null;
for (String s : list)
{
str = str + s + "," ;
}
System.out.println(str);
Я получу
abc,def,ghi,jkl, //Notice the comma in the end
Так что я должен переписать вышеприведенный цикл for следующим образом
...
for (int i = 0; i < list.length; i++)
{
str = str + list[i];
if (i != list.length - 1)
{
str = str + ",";
}
}
...
Можно ли сделать это более элегантно в Java?
Конечно, я бы использовал StringBuilder / Buffer для эффективности, но я хотел бы проиллюстрировать данный случай, не слишком многословно. Под элегантностью я подразумеваю решение, которое позволяет избежать уродливой (?) if
проверки внутри цикла.