String.join()は間に空文字列があるとseparatorが連続してしまうので代わりに以下
private static String join(List<String> values, String separator) {
String ret = '';
for (String value : values) {
if (String.isEmpty(value)) {
continue;
}
if (!String.isEmpty(ret)) {
ret += separator;
}
ret += value;
}
return !String.isEmpty(ret) ? ret : null;
}