Spec-Zone.ru › OpenJDK 25

Интерфейс CharSequence

Все известные подинтерфейсы:
Name, Utf8Entry
Все известные классы, реализующие интерфейс:
CharBuffer, Segment, String, StringBuffer, StringBuilder
public interface CharSequence
CharSequence — это читаемая последовательность значений char. Этот интерфейс предоставляет единообразный доступ только для чтения к множеству различных видов последовательностей char. Значение char представляет символ из основной многоязычной плоскости (BMP) или суррогат. Подробности см. в разделе Представление символов Unicode.

Этот интерфейс не уточняет общие контракты методов equals и hashCode. Поэтому результат проверки на равенство двух объектов, реализующих CharSequence, в общем случае не определён. Каждый объект может быть реализован отдельным классом, и нет гарантии, что каждый класс сможет проверять свои экземпляры на равенство с экземплярами другого класса. Поэтому произвольные экземпляры CharSequence не следует использовать в качестве элементов множества или ключей карты.

Начиная с версии:
1.4

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

Модификатор и тип Метод Описание
char charAt(int index)
Возвращает значение char по указанному индексу.
default IntStream chars()
Возвращает поток значений int, полученных расширением нулями значений char из этой последовательности.
default IntStream codePoints()
Возвращает поток значений кодовых точек из этой последовательности.
static int compare(CharSequence cs1, CharSequence cs2)
Сравнивает два экземпляра CharSequence лексикографически.
default void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
Копирует символы из этой последовательности в указанный массив назначения.
default boolean isEmpty()
Возвращает true, если эта символьная последовательность пуста.
int length()
Возвращает длину этой символьной последовательности.
CharSequence subSequence(int start, int end)
Возвращает CharSequence, являющуюся подпоследовательностью этой последовательности.
String toString()
Возвращает строку, содержащую символы этой последовательности в том же порядке.

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

length

int length()
Возвращает длину этой символьной последовательности. Длина — это количество 16-битных char в последовательности.
Возвращает:
количество char в этой последовательности

charAt

char charAt(int index)
Возвращает значение char по указанному индексу. Индекс находится в диапазоне от нуля до length() - 1. Первое значение char последовательности находится по индексу ноль, следующее — по индексу один и так далее, как при индексировании массива.

Если указанное индексом значение char является суррогатом, возвращается значение суррогата.

Параметры:
index — индекс возвращаемого значения char
Возвращает:
указанное значение char
Вызывает исключение:
IndexOutOfBoundsException — если аргумент index отрицателен или не меньше length()

isEmpty

default boolean isEmpty()
Возвращает true, если эта символьная последовательность пуста.
Требования к реализации:
Реализация по умолчанию возвращает результат вызова length() == 0.
Возвращает:
true, если length() равно 0, иначе false
Начиная с версии:
15

subSequence

CharSequence subSequence(int start, int end)
Возвращает CharSequence, являющуюся подпоследовательностью этой последовательности. Подпоследовательность начинается со значения char по указанному индексу и заканчивается значением char по индексу end - 1. Длина возвращаемой последовательности (в char) равна end - start, поэтому, если start == end, возвращается пустая последовательность.
Параметры:
start — начальный индекс включительно
end — конечный индекс исключительно
Возвращает:
указанную подпоследовательность
Вызывает исключение:
IndexOutOfBoundsException — если start или end отрицательны, если end больше length() или если start больше end

toString

String toString()
Возвращает строку, содержащую символы этой последовательности в том же порядке. Длина строки будет равна длине этой последовательности.
Переопределяет:
toString в классе Object
Возвращает:
строку, состоящую в точности из этой последовательности символов

chars

default IntStream chars()
Возвращает поток значений int, полученных расширением нулями значений char из этой последовательности. Любой символ char, соответствующий суррогатной кодовой точке, передаётся без интерпретации.

Поток связывается с этой последовательностью при запуске терминальной операции над потоком (в частности, для изменяемых последовательностей сплитератор потока использует позднее связывание). Если во время этой операции последовательность изменяется, результат не определён.

Возвращает:
IntStream значений char из этой последовательности
Начиная с версии:
1.8

codePoints

default IntStream codePoints()
Возвращает поток значений кодовых точек из этой последовательности. Любые суррогатные пары, обнаруженные в последовательности, объединяются так же, как при вызове Character.toCodePoint, и результат передаётся в поток. Все остальные кодовые единицы, включая обычные символы BMP, несоставленные суррогаты и неопределённые кодовые единицы, расширяются нулями до значений int, которые затем передаются в поток.

Поток связывается с этой последовательностью при запуске терминальной операции над потоком (в частности, для изменяемых последовательностей сплитератор потока использует позднее связывание). Если во время этой операции последовательность изменяется, результат не определён.

Возвращает:
IntStream кодовых точек Unicode из этой последовательности
Начиная с версии:
1.8

compare

static int compare(CharSequence cs1, CharSequence cs2)
Сравнивает два экземпляра CharSequence лексикографически. Возвращает отрицательное, нулевое или положительное значение, если первая последовательность лексикографически меньше, равна или больше второй соответственно.

Лексикографический порядок CharSequence определяется следующим образом. Рассмотрим CharSequence cs длины len как последовательность значений char: от cs[0] до cs[len-1]. Пусть k — наименьший индекс, по которому соответствующие значения char в каждой последовательности различаются. Лексикографический порядок последовательностей определяется числовым сравнением значений char cs1[k] и cs2[k]. Если такого индекса k нет, более короткая последовательность считается лексикографически меньшей. Если последовательности имеют одинаковую длину, они считаются лексикографически равными.

Параметры:
cs1 — первая CharSequence
cs2 — вторая CharSequence
Возвращает:
значение 0, если два CharSequence равны; отрицательное целое число, если первая CharSequence лексикографически меньше второй; или положительное целое число, если первая CharSequence лексикографически больше второй.
Начиная с версии:
11

getChars

default void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
Копирует символы из этой последовательности в указанный массив назначения. Первый копируемый символ находится по индексу srcBegin; последний копируемый символ — по индексу srcEnd-1. Общее количество копируемых символов равно srcEnd-srcBegin. Символы копируются в подмассив dst, начиная с индекса dstBegin и заканчивая индексом:
dstbegin + (srcEnd-srcBegin) - 1
Требования к реализации:
Реализация по умолчанию вызывает charAt(int index) в цикле, перебирая index от srcBegin до srcEnd-1. Параллельное усечение этой символьной последовательности может привести к возникновению IndexOutOfBoundsException. В этом случае некоторые символы, но не все, могут быть уже скопированы.
Параметры:
srcBegin — начать копирование с этого смещения.
srcEnd — прекратить копирование на этом смещении.
dst — массив, в который копируются данные.
dstBegin — смещение в dst.
Вызывает исключение:
IndexOutOfBoundsException — если выполняется хотя бы одно из следующих условий:
  • srcBegin отрицательно
  • dstBegin отрицательно
  • аргумент srcBegin больше аргумента srcEnd.
  • srcEnd больше this.length().
  • dstBegin+srcEnd-srcBegin больше dst.length
NullPointerException — если dst равно null
Начиная с версии:
25

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, которая содержит более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/CharSequence.html

Spec-Zone.ru

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