Spec-Zone.ru › OpenJDK 27

Класс StringJoiner

java.lang.Object
java.util.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
См. также:
  • Collectors.joining(CharSequence)
  • Collectors.joining(CharSequence, CharSequence, CharSequence)

Краткое описание конструкторов

Конструктор Описание
StringJoiner(CharSequence delimiter)
Создаёт StringJoiner без символов, без prefix и suffix, используя копию переданного delimiter.
StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix)
Создаёт StringJoiner без символов, используя копии переданных prefix, delimiter и suffix.

Краткое описание методов

Модификатор и тип Метод Описание
StringJoiner add(CharSequence newElement)
Добавляет копию заданного значения CharSequence в качестве следующего элемента значения StringJoiner.
int length()
Возвращает длину строкового представления String этого StringJoiner.
StringJoiner merge(StringJoiner other)
Добавляет содержимое заданного StringJoiner без префикса и суффикса в качестве следующего элемента, если оно не пусто.
StringJoiner setEmptyValue(CharSequence emptyValue)
Задаёт последовательность символов, используемую при определении строкового представления этого StringJoiner, если элементы ещё не добавлены, то есть когда оно пусто.
String toString()
Возвращает текущее значение, состоящее из prefix, значений, добавленных к настоящему моменту и разделённых delimiter, и suffix. Если элементы не добавлялись, возвращаются символы prefix + suffix или emptyValue.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект другому объекту.
protected void finalize()
Устарел, будет удалён: этот элемент API подлежит удалению в будущей версии.
Финализация устарела и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает значение хеш-кода для этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка времени.

Подробное описание конструкторов

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, добавляется "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. Обратите внимание: если методы добавления не вызывались, возвращается длина строкового представления String (либо prefix + suffix, либо emptyValue). Это значение должно быть эквивалентно toString().length().
Возвращает:
длину текущего значения StringJoiner

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API