Класс StringJoiner
public final class StringJoiner extends Object
StringJoiner используется для построения последовательности символов, разделённых разделителем и, необязательно, начинающейся с заданного префикса и заканчивающейся заданным суффиксом. Перед добавлением чего-либо в StringJoiner, его метод sj.toString() по умолчанию вернёт prefix + suffix. Однако, если вызвать метод setEmptyValue, вместо этого будет возвращён заданный emptyValue. Это можно использовать, например, при создании строки, использующей запись множества для обозначения пустого множества, например "{}", где prefix равно "{", suffix равно "}", а в StringJoiner ничего не добавлено.
- Примечание API:
-
Строка
"[George:Sally:Fred]"может быть построена следующим образом:StringJoiner sj = new StringJoiner(":", "[", "]"); sj.add("George").add("Sally").add("Fred"); String desiredString = sj.toString();Можно использовать
StringJoinerдля создания отформатированного вывода изStreamс помощьюCollectors.joining(CharSequence). Например:List<Integer> numbers = Arrays.asList(1, 2, 3, 4); String commaSeparatedNumbers = numbers.stream() .map(i -> i.toString()) .collect(Collectors.joining(", ")); - C момента:
- 1.8
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
StringJoiner |
Создаёт StringJoiner без символов, без prefix или suffix, и копией переданного delimiter. |
StringJoiner |
Создаёт StringJoiner без символов, используя копии переданных prefix, delimiter и suffix. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
StringJoiner |
add |
Добавляет копию переданного CharSequence значения как следующий элемент значения StringJoiner. |
int |
length() |
Возвращает длину представления String этого StringJoiner. |
StringJoiner |
merge |
Добавляет содержимое переданного StringJoiner без префикса и суффикса как следующий элемент, если оно не пусто. |
StringJoiner |
setEmptyValue |
Устанавливает последовательность символов, используемых при определении строкового представления этого StringJoiner, если ещё не было добавлено элементов, то есть когда он пуст. |
String |
toString() |
Возвращает текущее значение, состоящее из prefix, уже добавленных значений, разделённых delimiter, и suffix, если элементы не были добавлены, то возвращаются prefix + suffix или emptyValue символы. |
Подробное описание конструкторов
StringJoiner
public StringJoiner(CharSequence delimiter)
StringJoiner без символов, без prefix или suffix, и копией переданного delimiter. Если в StringJoiner не добавлялись символы и вызывались методы, возвращающие значение, то результат не будет содержать prefix или suffix (или соответствующие свойства), если до этого не был вызван метод setEmptyValue. - Параметры:
-
delimiter- последовательность символов, используемая между каждым элементом, добавляемым в значениеStringJoiner - Исключения:
-
NullPointerException- еслиdelimiterявляетсяnull
StringJoiner
public StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix)
StringJoiner без символов, используя копии переданных prefix, delimiter и suffix. Если в StringJoiner не добавлялись символы и вызывались методы, возвращающие строковое значение, то результат будет содержать prefix + suffix (или соответствующие свойства), если до этого не был вызван метод setEmptyValue. - Параметры:
-
delimiter- последовательность символов, используемая между каждым элементом, добавляемым в значениеStringJoiner -
prefix- последовательность символов, используемая в начале -
suffix- последовательность символов, используемая в конце - Исключения:
-
NullPointerException- еслиprefix,delimiter, илиsuffixявляютсяnull
Подробное описание методов
setEmptyValue
public StringJoiner setEmptyValue(CharSequence emptyValue)
StringJoiner, когда ещё не добавлено ни одного элемента, то есть когда он пустой. Копия параметра emptyValue создаётся для этой цели. Обратите внимание, что как только был вызван метод добавления, StringJoiner больше не считается пустым, даже если добавленный(ые) элемент(ы) соответствуют пустому значению String. - Параметры:
-
emptyValue- символы, возвращаемые в качестве значения пустогоStringJoiner - Возвращает:
- сам
StringJoinerдля возможности цепочечных вызовов - Исключения:
-
NullPointerException- если параметрemptyValueявляетсяnull
toString
public String toString()
prefix, значений, добавленных до сих пор, разделённых delimiter, и suffix, за исключением случая, когда не было добавлено ни одного элемента, в котором случае возвращаются prefix + suffix или emptyValue символы.- Переопределяет:
-
toStringв классеObject - Возвращает:
- строковое представление этого
StringJoiner
add
public StringJoiner add(CharSequence newElement)
CharSequence в качестве следующего элемента значения StringJoiner. Если newElement пусто, то "null" добавляется.- Параметры:
-
newElement- Элемент для добавления - Возвращает:
- ссылку на этот
StringJoiner
merge
public StringJoiner merge(StringJoiner other)
StringJoiner без префикса и суффикса в качестве следующего элемента, если оно не пустое. Если данный
StringJoiner пустой, вызов не оказывает никакого эффекта. StringJoiner пустой, если метод add() никогда не вызывался, и если метод merge() никогда не вызывался с непустым аргументом StringJoiner.
Если у другого StringJoiner используется другой разделитель, элементы из другого StringJoiner конкатенируются с этим разделителем, и результат добавляется в этот StringJoiner как один элемент.
- Параметры:
-
other-StringJoinerсодержимое которого должно быть слито в этот - Возвращает:
- Этот
StringJoiner - Исключения:
-
NullPointerException- если другойStringJoinerравен null
длина
public int length()
String представления этого StringJoiner. Обратите внимание, что если не были вызваны методы добавления, то будет возвращена длина String представления (либо prefix + suffix , либо emptyValue). Значение должно быть эквивалентно toString().length(). - Возвращает:
- длину текущего значения
StringJoiner
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/StringJoiner.html