code: public static String join(String separator, Iterator<?> parts) {
      Preconditions.checkNotNull(separator, "separator");
      Preconditions.checkNotNull(parts, "parts");
  
      StringBuilder builder = new StringBuilder();
      if (parts.hasNext()) {
        builder.append(parts.next().toString());
        while (parts.hasNext()) {
          builder.append(separator);
          builder.append(parts.next().toString());
        }
      }
      return builder.toString();
    }
docs: Join the string representation of each part separated by the given separator string.
  
  @param separator Separator string. For example ","
  @param parts     An iterator of the parts to join
  @return The string formed by joining each part separated by the given separator.