Package com.google.common.base
Class Joiner
java.lang.Object
com.google.common.base.Joiner
An object which joins pieces of text (specified as an array,
Iterable
, varargs or even a
Map
) with a separator. It either appends the results to an Appendable
or returns
them as a String
. Example:
Joiner joiner = Joiner.on("; ").skipNulls();
. . .
return joiner.join("Harry", null, "Ron", "Hermione");
This returns the string "Harry; Ron; Hermione"
. Note that all input elements are
converted to strings using Object.toString()
before being appended.
If neither skipNulls()
nor useForNull(String)
is specified, the joining
methods will throw NullPointerException
if any given element is null.
Warning: joiner instances are always immutable; a configuration method such as
useForNull
has no effect on the instance it is invoked on! You must store and use the new joiner
instance returned by the method. This makes joiners thread-safe, and safe to store as
static final
constants.
// Bad! Do not do this!
Joiner joiner = Joiner.on(',');
joiner.skipNulls(); // does nothing!
return joiner.join("wrong", null, "wrong");
See the Guava User Guide article on Joiner
.
- Since:
- 2.0
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final class
An object that joins map entries in the same manner asJoiner
joins iterables and arrays. -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<A extends Appendable>
AAppends the string representation of each ofparts
, using the previously configured separator between each, toappendable
.final <A extends Appendable>
AAppends the string representation of each ofparts
, using the previously configured separator between each, toappendable
.final <A extends Appendable>
AAppends toappendable
the string representation of each of the remaining arguments.<A extends Appendable>
AAppends the string representation of each ofparts
, using the previously configured separator between each, toappendable
.final StringBuilder
appendTo
(StringBuilder builder, Iterable<? extends Object> parts) Appends the string representation of each ofparts
, using the previously configured separator between each, tobuilder
.final StringBuilder
appendTo
(StringBuilder builder, Object[] parts) Appends the string representation of each ofparts
, using the previously configured separator between each, tobuilder
.final StringBuilder
appendTo
(StringBuilder builder, Object first, Object second, Object... rest) Appends tobuilder
the string representation of each of the remaining arguments.final StringBuilder
appendTo
(StringBuilder builder, Iterator<? extends Object> parts) Appends the string representation of each ofparts
, using the previously configured separator between each, tobuilder
.final String
Returns a string containing the string representation of each ofparts
, using the previously configured separator between each.final String
Returns a string containing the string representation of each ofparts
, using the previously configured separator between each.final String
Returns a string containing the string representation of each argument, using the previously configured separator between each.final String
Returns a string containing the string representation of each ofparts
, using the previously configured separator between each.static Joiner
on
(char separator) Returns a joiner which automatically placesseparator
between consecutive elements.static Joiner
Returns a joiner which automatically placesseparator
between consecutive elements.Returns a joiner with the same behavior as this joiner, except automatically skipping over any provided null elements.(package private) CharSequence
useForNull
(String nullText) Returns a joiner with the same behavior as this one, except automatically substitutingnullText
for any provided null elements.withKeyValueSeparator
(char keyValueSeparator) Returns aMapJoiner
using the given key-value separator, and the same configuration as thisJoiner
otherwise.withKeyValueSeparator
(String keyValueSeparator) Returns aMapJoiner
using the given key-value separator, and the same configuration as thisJoiner
otherwise.
-
Field Details
-
separator
-
-
Constructor Details
-
Joiner
-
Joiner
-
-
Method Details
-
on
Returns a joiner which automatically placesseparator
between consecutive elements. -
on
Returns a joiner which automatically placesseparator
between consecutive elements. -
appendTo
public <A extends Appendable> A appendTo(A appendable, Iterable<? extends Object> parts) throws IOException Appends the string representation of each ofparts
, using the previously configured separator between each, toappendable
.- Throws:
IOException
-
appendTo
public <A extends Appendable> A appendTo(A appendable, Iterator<? extends Object> parts) throws IOException Appends the string representation of each ofparts
, using the previously configured separator between each, toappendable
.- Throws:
IOException
- Since:
- 11.0
-
appendTo
Appends the string representation of each ofparts
, using the previously configured separator between each, toappendable
.- Throws:
IOException
-
appendTo
public final <A extends Appendable> A appendTo(A appendable, @CheckForNull Object first, @CheckForNull Object second, Object... rest) throws IOException Appends toappendable
the string representation of each of the remaining arguments.- Throws:
IOException
-
appendTo
Appends the string representation of each ofparts
, using the previously configured separator between each, tobuilder
. Identical toappendTo(Appendable, Iterable)
, except that it does not throwIOException
. -
appendTo
Appends the string representation of each ofparts
, using the previously configured separator between each, tobuilder
. Identical toappendTo(Appendable, Iterable)
, except that it does not throwIOException
.- Since:
- 11.0
-
appendTo
Appends the string representation of each ofparts
, using the previously configured separator between each, tobuilder
. Identical toappendTo(Appendable, Iterable)
, except that it does not throwIOException
. -
appendTo
public final StringBuilder appendTo(StringBuilder builder, @CheckForNull Object first, @CheckForNull Object second, Object... rest) Appends tobuilder
the string representation of each of the remaining arguments. Identical toappendTo(Appendable, Object, Object, Object...)
, except that it does not throwIOException
. -
join
Returns a string containing the string representation of each ofparts
, using the previously configured separator between each. -
join
Returns a string containing the string representation of each ofparts
, using the previously configured separator between each.- Since:
- 11.0
-
join
Returns a string containing the string representation of each ofparts
, using the previously configured separator between each. -
join
Returns a string containing the string representation of each argument, using the previously configured separator between each. -
useForNull
Returns a joiner with the same behavior as this one, except automatically substitutingnullText
for any provided null elements. -
skipNulls
Returns a joiner with the same behavior as this joiner, except automatically skipping over any provided null elements. -
withKeyValueSeparator
Returns aMapJoiner
using the given key-value separator, and the same configuration as thisJoiner
otherwise.- Since:
- 20.0
-
withKeyValueSeparator
Returns aMapJoiner
using the given key-value separator, and the same configuration as thisJoiner
otherwise. -
toString
-
iterable
-