Это распространенный сценарий.Я собираюсь немного упростить это, чтобы проиллюстрировать некоторые решения:
Option # 1 - удалить последний символ, изменив длину StringBuffer:
StringBuffer sb = new StringBuffer();
Enumeration en = ...
while (en.hasMoreElements())
sb.append(en.nextElement());
sb.append(",");
}
if (sb.length() > 0) {
sb.setLength(sb.length() - 1);
}
System.err.println(sb.toString());
Option# 2 - добавить разделитель, если буфер не пустой
StringBuffer sb = new StringBuffer();
Enumeration en = ...
while (en.hasMoreElements())
if (sb.length() > 0) {
sb.append(",");
}
sb.append(en.nextElement());
}
System.err.println(sb.toString());
Опция # 3 - добавить разделитель, если есть больше элементов ...
StringBuffer sb = new StringBuffer();
Enumeration en = ...
while (en.hasMoreElements())
sb.append(en.nextElement());
if (en.hasMoreElements()) {
sb.append(",");
}
}
System.err.println(sb.toString());
Вариант № 4 - добавить разделитель, если это не первый раз в цикле ...
StringBuffer sb = new StringBuffer();
Enumeration en = ...
boolean first = true;
while (en.hasMoreElements())
if (first) {
first = false;
} else {
sb.append(",");
}
sb.append(en.nextElement());
}
System.err.println(sb.toString());
Что лучше всего зависит от точных деталей того, что вы делаете, и насколько важнопроизводительность.
Наконец, я должен отметить, что вам нужно быть немного более осторожным при сборке URL-адресов в целом и строк запросов.Например, вам нужно правильно экранировать любые символы, которые не являются «незарезервированными» (согласно спецификации URL) в именах и значениях параметров.Если вы неосторожны, вы можете получить вектор для внедрения XSS-атак на ваш сайт.