public String join(Iterable<?> parts)
	{
		boolean first = true;
		StringBuilder sb = new StringBuilder(prefix);
		for (Object part : parts) {
			String s = format(part);
			if (s != null) {
				if (first) {
					first = false;
				} else {
					sb.append(separator);
				}
				sb.append(s);
			}
		}
		return sb.append(suffix).toString();
	}
public String join(Iterable<?> parts)
	{
		boolean first = true;
		StringBuilder sb = new StringBuilder(prefix);
		for (Object part : parts) {
			String s = format(part);
			if (s != null) {
				if (first) {
					first = false;
				} else {
					sb.append(separator);
				}
				sb.append(s);
			}
		}
		return sb.append(suffix).toString();
	}
public String join ( Iterable < ? > parts ) { boolean first = true ; StringBuilder sb = new StringBuilder ( prefix ) ; for ( Object part : parts ) { String s = format ( part ) ; if ( s != null ) { if ( first ) { first = false ; } else { sb . append ( separator ) ; } sb . append ( s ) ; } } return sb . append ( suffix ) . toString ( ) ; }
Joins the given {@code String}s according to its configuration.

@param parts the parts to join.

@return the created {@code String}.

@throws NullPointerException if {@code parts} is {@code null}.
Joins the given { @code String } s according to its configuration .