С учетом списка
List<String> l = new ArrayList<String>();
l.add("one");
l.add("two");
l.add("three");
У меня есть метод
String join(List<String> messages) {
if (messages.isEmpty()) return "";
if (messages.size() == 1) return messages.get(0);
String message = "";
message = StringUtils.join(messages.subList(0, messages.size() -2), ", ");
message = message + (messages.size() > 2 ? ", " : "") + StringUtils.join(messages.subList(messages.size() -2, messages.size()), ", and ");
return message;
}
, который для l выдает «один, два и три».У меня вопрос, есть ли стандартный (apache-commons) метод, который делает то же самое? Например,
WhatEverUtils.join(l, ", ", ", and ");
Для пояснения.Моя проблема не в том, чтобы заставить этот метод работать.Работает так, как я хочу, проверено и все хорошо.Моя проблема в том, что я не смог найти какой-то apache-commons-like модуль, который реализует такую функциональность.Это удивляет меня, так как я не могу быть первым, кто нуждается в этом.
Но тогда, возможно, все остальные только что сделали
StringUtils.join(l, ", ").replaceAll(lastCommaRegex, ", and");