code: public static String joinWith(final String separator, final Object... objects) {
          if (objects == null) {
              throw new IllegalArgumentException("Object varargs must not be null");
          }
  
          final String sanitizedSeparator = defaultString(separator, StringUtils.EMPTY);
  
          final StringBuilder result = new StringBuilder();
  
          final Iterator<Object> iterator = Arrays.asList(objects).iterator();
          while (iterator.hasNext()) {
              final String value = Objects.toString(iterator.next(), "");
              result.append(value);
  
              if (iterator.hasNext()) {
                  result.append(sanitizedSeparator);
              }
          }
  
          return result.toString();
      }
docs: <p>Joins the elements of the provided varargs into a
  single String containing the provided elements.</p>
  
  <p>No delimiter is added before or after the list.
  {@code null} elements and separator are treated as empty Strings ("").</p>
  
  <pre>
  StringUtils.joinWith(",", {"a", "b"})        = "a,b"
  StringUtils.joinWith(",", {"a", "b",""})     = "a,b,"
  StringUtils.joinWith(",", {"a", null, "b"})  = "a,,b"
  StringUtils.joinWith(null, {"a", "b"})       = "ab"
  </pre>
  
  @param separator the separator character to use, null treated as ""
  @param objects the varargs providing the values to join together. {@code null} elements are treated as ""
  @return the joined String.
  @throws java.lang.IllegalArgumentException if a null varargs is provided
  @since 3.5