Я часто сталкиваюсь с задачей создать строковое представление коллекции объектов.
пример:
String[] collection = {"foo", "bar", "lorem", "dolar"};
Представление, которое я хочу создать: "foo, bar, lorem, dolar".
Каждый раз, когда я сталкиваюсь с этой задачей, я задаюсь вопросом, какой самый простой и удобный способ достичь желаемого результата.
Я знаю, что есть много способов получить желаемое представление, но, например, мне всегда было интересно, есть ли возможность создать строку, просто используя цикл for / each?
вот так:
StringBuilder builder = new StringBuilder();
for (String tag : list) {
builder.append(tag + ", ");
String representation = builder.toString();
// but now the String look like this: "foo, bar, lorem, dolar, " which nobody wants
Или лучше всего использовать итератор, если он есть, напрямую?
Предположим, что список - это коллекция (вот как они это делают в JDK):
Iterator<String> it = list.iterator();
while (it.hasNext()) {
sb.append(it.next());
if (!it.hasNext()) {
break;
}
sb.append(", ");
}
Конечно, можно было бы индексировать массив с помощью традиционного цикла for или делать многое другое.
Вопрос
Какой самый простой / наиболее читаемый / самый безопасный способ преобразовать список строк в представление, разделяя каждый элемент запятой < / strong> и обрабатывать крайний регистр в начале или в конце (это означает, что перед первым элементом или после последнего элемента нет запятой)?