public final class TextJoiner
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
DEFAULT_SEPARATOR
The default separator for String joining and splitting: ", "
|
| Modifier and Type | Method and Description |
|---|---|
void |
appendTo(java.lang.StringBuilder sb,
java.util.Collection<?> collection) |
static TextJoiner |
create()
Creates a new fluent
TextJoiner instance with default settings. |
static TextJoiner |
defaultingTo(java.lang.String defaultString)
Creates a builder preconfigured with a fallback string returned when the input collection
or array is null or empty.
|
TextJoiner |
escape(boolean escape)
Configures whether escaping is enabled (default is
true). |
static java.lang.String |
escape(java.lang.String str,
java.lang.String charsToEscape)
Escapes backslashes and any character present in
charsToEscape
by prefixing them with a single backslash ('\'). |
static TextJoiner |
escaping(boolean escape)
Creates a builder with escaping explicitly enabled or disabled.
|
static TextJoiner |
escapingWith(java.util.function.BiFunction<java.lang.String,java.lang.String,java.lang.String> escaper)
Creates a builder preconfigured with a custom escaping function.
|
java.lang.String |
join(java.util.Collection<?> col) |
java.lang.String |
join(java.lang.Object[] array) |
java.lang.String |
join(java.lang.String[] array) |
static java.lang.String |
joinAll(java.util.Collection<?> col)
Joins collection elements using default delimiter (", ").
|
static java.lang.String |
joinAll(java.lang.Object[] array)
Joins array elements using default delimiter (", ").
|
static java.lang.String |
joinAll(java.lang.String[] array)
Joins array elements using default delimiter (", ").
|
static java.lang.String |
joinLastDifferent(java.lang.String[] strs,
java.lang.String lastSep,
java.lang.String sep)
Joins elements for natural language output where the final separator differs.
|
java.lang.String |
joinTwo(java.lang.String s1,
java.lang.String s2)
Specialized joiner for 2 strings adhering to the contract:
returns
null if both inputs are null. |
static TextJoiner |
on(char separator)
Convenience alias for single-character delimiters.
|
static TextJoiner |
on(java.lang.String separator)
Convenience alias for
separatedBy(String). |
static TextJoiner |
prefixedWith(java.lang.String prefix)
Creates a builder preconfigured to prepend this string once at the beginning of the rendered output.
|
TextJoiner |
removeDuplicates(boolean removeDuplicates)
Deduplicates elements while preserving insertion order (first-seen wins).
|
TextJoiner |
removeEmptyStrings(boolean removeEmptyStrings)
Drops empty, whitespace-only, and null strings during iteration (equivalent to
StringUtils.isBlank). |
TextJoiner |
removeNulls(boolean removeNulls)
Drops literal
null values during iteration. |
static TextJoiner |
removingDuplicates(boolean removeDuplicates)
Creates a builder with deduplication explicitly configured.
|
static TextJoiner |
removingEmptyStrings(boolean removeEmptyStrings)
Creates a builder with empty-string filtering explicitly configured.
|
static TextJoiner |
removingNulls(boolean removeNulls)
Creates a builder with null-filtering explicitly configured.
|
TextJoiner |
separateBy(char separator)
Convenience alias for single-character separator.
|
TextJoiner |
separateBy(java.lang.String separator)
Convenience alias for
withSeparator(String). |
static TextJoiner |
separatedBy(char separator)
Convenience alias for single-character separator.
|
static TextJoiner |
separatedBy(java.lang.String separator)
Creates a builder preconfigured with a specific delimiter to save on boilerplate code.
|
static TextJoiner |
surroundedWith(java.util.function.BiFunction<java.lang.String,java.lang.String,java.lang.String> surrounder)
Creates a builder preconfigured with dynamic surrounding logic.
|
static TextJoiner |
surroundedWith(char surround)
Convenience alias for single-character surrounds.
|
static TextJoiner |
surroundedWith(java.lang.String surround)
Creates a builder preconfigured to surround each element by prepending and appending this exact string.
|
TextJoiner |
surroundWith(java.util.function.BiFunction<java.lang.String,java.lang.String,java.lang.String> surrounder)
Configures dynamic surrounding based on the element value and current separator.
|
TextJoiner |
surroundWith(char surround)
Convenience alias for single-character surrounds.
|
TextJoiner |
surroundWith(java.lang.String surround)
Surrounds each element by prepending AND appending this exact string.
|
static java.lang.String |
unescape(java.lang.String str)
Unescapes strings that were escaped using
escape(String, String)
without regex overhead. |
TextJoiner |
withDefault(java.lang.String defaultString)
Fallback string returned when the input collection or array is null or empty.
|
TextJoiner |
withEscaper(java.util.function.BiFunction<java.lang.String,java.lang.String,java.lang.String> escaper)
Supplies the custom escaping function
(value, separator) -> escapedValue. |
static TextJoiner |
withoutDuplicates()
Creates a builder configured to deduplicate elements while preserving insertion order.
|
static TextJoiner |
withoutEmptyStrings()
Creates a builder configured to drop empty, whitespace-only, and null strings during iteration.
|
static TextJoiner |
withoutNulls()
Creates a builder configured to drop literal
null values during iteration. |
TextJoiner |
withPrefix(java.lang.String prefix)
Prepends this string once at the beginning of the rendered output.
|
TextJoiner |
withSeparator(char separator)
Convenience alias for single-character separator.
|
TextJoiner |
withSeparator(java.lang.String separator)
Sets the delimiter inserted between elements.
|
public static final java.lang.String DEFAULT_SEPARATOR
public static java.lang.String escape(java.lang.String str,
java.lang.String charsToEscape)
charsToEscape
by prefixing them with a single backslash ('\').str - the string to escapecharsToEscape - characters that need escaping (e.g. delimiters)java.lang.NullPointerException - if str is null.public static java.lang.String unescape(java.lang.String str)
escape(String, String)
without regex overhead.str - string to unescapejava.lang.NullPointerException - if str is null.public static TextJoiner create()
TextJoiner instance with default settings.public static TextJoiner separatedBy(java.lang.String separator)
TextJoiner.create().withSeparator(separator).public static TextJoiner separatedBy(char separator)
public static TextJoiner on(java.lang.String separator)
separatedBy(String).public static TextJoiner on(char separator)
public static TextJoiner defaultingTo(java.lang.String defaultString)
TextJoiner.create().withDefault(defaultString).public static TextJoiner surroundedWith(java.lang.String surround)
TextJoiner.create().surroundWith(surround).public static TextJoiner surroundedWith(char surround)
public static TextJoiner surroundedWith(java.util.function.BiFunction<java.lang.String,java.lang.String,java.lang.String> surrounder)
TextJoiner.create().surroundWith(surrounder).public static TextJoiner prefixedWith(java.lang.String prefix)
TextJoiner.create().withPrefix(prefix).public static TextJoiner escaping(boolean escape)
TextJoiner.create().escape(escape).public static TextJoiner escapingWith(java.util.function.BiFunction<java.lang.String,java.lang.String,java.lang.String> escaper)
TextJoiner.create().withEscaper(escaper).public static TextJoiner withoutNulls()
null values during iteration.
Equivalent to TextJoiner.create().removeNulls(true).public static TextJoiner removingNulls(boolean removeNulls)
TextJoiner.create().removeNulls(removeNulls).public static TextJoiner withoutEmptyStrings()
TextJoiner.create().removeEmptyStrings(true).public static TextJoiner removingEmptyStrings(boolean removeEmptyStrings)
TextJoiner.create().removeEmptyStrings(removeEmptyStrings).public static TextJoiner withoutDuplicates()
TextJoiner.create().removeDuplicates(true).public static TextJoiner removingDuplicates(boolean removeDuplicates)
TextJoiner.create().removeDuplicates(removeDuplicates).public static java.lang.String joinAll(java.util.Collection<?> col)
public static java.lang.String joinAll(java.lang.Object[] array)
public static java.lang.String joinAll(java.lang.String[] array)
public TextJoiner withSeparator(java.lang.String separator)
public TextJoiner withSeparator(char separator)
public TextJoiner separateBy(java.lang.String separator)
withSeparator(String).public TextJoiner separateBy(char separator)
public TextJoiner withDefault(java.lang.String defaultString)
public TextJoiner surroundWith(java.lang.String surround)
public TextJoiner surroundWith(char surround)
public TextJoiner surroundWith(java.util.function.BiFunction<java.lang.String,java.lang.String,java.lang.String> surrounder)
public TextJoiner withPrefix(java.lang.String prefix)
public TextJoiner escape(boolean escape)
true).public TextJoiner withEscaper(java.util.function.BiFunction<java.lang.String,java.lang.String,java.lang.String> escaper)
(value, separator) -> escapedValue.public TextJoiner removeNulls(boolean removeNulls)
null values during iteration.public TextJoiner removeEmptyStrings(boolean removeEmptyStrings)
StringUtils.isBlank).public TextJoiner removeDuplicates(boolean removeDuplicates)
public java.lang.String join(java.util.Collection<?> col)
public java.lang.String join(java.lang.Object[] array)
public java.lang.String join(java.lang.String[] array)
public java.lang.String joinTwo(java.lang.String s1,
java.lang.String s2)
null if both inputs are null.public static java.lang.String joinLastDifferent(java.lang.String[] strs,
java.lang.String lastSep,
java.lang.String sep)
["Tom", "Dick", "Harry"] -> "Tom, Dick and Harry".public void appendTo(java.lang.StringBuilder sb,
java.util.Collection<?> collection)
Copyright © 2000-2026 OAshi S.à r.l. All Rights Reserved.