public static S join(S glue, Iterable strings) {
if (strings == null) ret "";
if (strings cast Collection) {
if (strings.size() == 1) ret strOrEmpty(first(strings));
}
new StringBuilder buf;
Iterator i = strings.iterator();
if (i.hasNext()) {
buf.append(strOrEmpty(i.next()));
while (i.hasNext())
buf.append(glue).append(strOrEmpty(i.next()));
}
ret buf.toString();
}
public static S join(S glue, S... strings) {
ret join(glue, Arrays.asList(strings));
}
public static S join(S glue, O... strings) {
ret join(glue, Arrays.asList(strings));
}
static S join(Iterable strings) {
ret join("", strings);
}
static S join(Iterable strings, S glue) {
ret join(glue, strings);
}
public static S join(String[] strings) {
ret join("", strings);
}
ifclass Pair
static S join(S glue, Pair p) {
ret p == null ? "" : str(p.a) + glue + str(p.b);
}
endif