Класс 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() |
Возвращает длину строкового представления этого 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 символов, если не было добавлено ни одного элемента.- Переопределяет:
-
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()
StringJoiner. Обратите внимание, что если не вызывались методы add, то будет возвращена длина строкового представления (либо prefix + suffix, либо emptyValue). Значение должно быть эквивалентно toString().length().- Возвращает:
- длина текущего значения
StringJoiner
© 1993, 2021, 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/17/docs/api/java.base/java/util/StringJoiner.html