Класс 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(", ")); - С какого года:
- 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. Обратите внимание, что после вызова метода add StringJoiner больше не считается пустым, даже если добавленный элемент (или элементы) соответствуют пустому значению String.- Параметры:
-
emptyValue- символы, возвращаемые в качестве значения пустогоStringJoiner - Возвращает:
- сам этот
StringJoiner, чтобы можно было объединять вызовы в цепочку - Исключения:
-
NullPointerException- когда параметрemptyValueравенnull
toString
public String toString()
prefix, добавленных на данный момент значений, разделенных delimiter, и suffix, за исключением случаев, когда элементы не были добавлены; в таком случае возвращаются символы prefix + suffix или emptyValue.add
public StringJoiner add(CharSequence newElement)
CharSequence в качестве следующего элемента значения StringJoiner. Если newElement равен null, тогда добавляется "null".- Параметры:
-
newElement- элемент для добавления - Возвращает:
- ссылку на этот
StringJoiner
merge
public StringJoiner merge(StringJoiner other)
StringJoiner без префикса и суффикса в качестве следующего элемента, если он не пуст. Если указанный
StringJoiner пуст, вызов не имеет никакого эффекта. StringJoiner является пустым, если add() ни разу не вызывался и если merge() ни разу не вызывался с непустым аргументом StringJoiner.
Если другой StringJoiner использует другой разделитель, то элементы из другого StringJoiner объединяются с этим разделителем, и результат добавляется к этому StringJoiner как один элемент.
- Параметры:
-
other-StringJoiner, содержимое которого должно быть объединено с этим объектом - Возвращает:
- этот
StringJoiner - Исключения:
-
NullPointerException- если другойStringJoinerравен null
length
public int length()
String) этого StringJoiner. Обратите внимание, что если методы add не вызывались, то будет возвращена длина представления String (либо prefix + suffix, либо emptyValue). Значение должно быть эквивалентно toString().length().- Возвращает:
- длину текущего значения
StringJoiner
© 1993, 2025, 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/25/docs/api/java.base/java/util/StringJoiner.html