static S joinStrings(S sep, O... strings) {
  ret joinStrings(sep, Arrays.asList(strings));
}

static S joinStrings(S sep, Iterable strings) {
  new StringBuilder buf;
  for (O o : unnull(strings)) { 
    S s = strOrNull(o);
    if (nempty(s)) {
      if (nempty(buf)) buf.append(sep);
      buf.append(s);
    }
  }
  ret str(buf);
}