Класс CharBuffer
- java.lang.Object
-
- java.nio.Buffer
-
- java.nio.CharBuffer
- Все реализованные интерфейсы:
-
Appendable,CharSequence,Comparable<CharBuffer>,Readable
public abstract class CharBuffer extends Buffer implements Comparable<CharBuffer>, Appendable, CharSequence, Readable
Буфер символов.
Этот класс определяет четыре категории операций над буферами символов:
Абсолютные и относительные методы
getиputдля чтения и записи отдельных символов;Относительные методы
bulk getдля передачи последовательных наборов символов из этого буфера в массив; иОтносительные методы
bulk putдля передачи последовательных наборов символов из массива символов, строки или другого буфера символов в этот буфер; иМетод для
compactingбуфера символов.
Буферы символов могут быть созданы либо с помощью allocation, который выделяет место для содержимого буфера, либо с помощью wrapping существующего массива символов или строки в буфер, или путем создания представления существующего буфера байтов.
Как и буфер байтов, буфер символов может быть либо прямым, либо непрямым. Буфер символов, созданный с помощью методов wrap этого класса, будет непрямым. Буфер символов, созданный как представление буфера байтов, будет прямым только в том случае, если сам буфер байтов является прямым. Прямой ли буфер символов можно определить, вызвав метод isDirect.
Этот класс реализует интерфейс CharSequence, поэтому буферы символов могут быть использованы там, где принимаются последовательности символов, например, в пакете регулярных выражений java.util.regex.
Методы в этом классе, которые не возвращают никакого значения, по умолчанию возвращают буфер, над которым они вызываются. Это позволяет цеплять вызовы методов. Последовательность утверждений
cb.put("text/");
cb.put(subtype);
cb.put("; charset=");
cb.put(enc); может, например, быть заменена одним оператором cb.put("text/").put(subtype).put("; charset=").put(enc);
- C момента:
- 1.4
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
static CharBuffer | allocate(int capacity) | Выделяет новый буфер символов. |
CharBuffer | append(char c) | Добавляет указанный символ в этот буфер (дополнительная операция). |
CharBuffer | append(CharSequence csq) | Добавляет указанную последовательность символов в этот буфер (дополнительная операция). |
CharBuffer | append(CharSequence csq,
int start,
int end) | Добавляет подпоследовательность указанной последовательности символов в этот буфер (дополнительная операция). |
char[] | array() | Возвращает массив символов, который поддерживает этот буфер (дополнительная операция). |
int | arrayOffset() | Возвращает смещение в поддерживающем массиве этого буфера первого элемента буфера (дополнительная операция). |
abstract CharBuffer | asReadOnlyBuffer() | Создаёт новый, только для чтения, буфер символов, который совместно использует содержимое этого буфера. |
char | charAt(int index) | Считывает символ по заданному индексу, относительно текущей позиции. |
abstract CharBuffer | compact() | Уплотняет этот буфер (дополнительная операция). |
int | compareTo(CharBuffer that) | Сравнивает этот буфер с другим. |
abstract CharBuffer | duplicate() | Создаёт новый буфер символов, который совместно использует содержимое этого буфера. |
boolean | equals(Object ob) | Определяет, равен ли этот буфер другому объекту. |
abstract char | get() | Относительный метод get. |
CharBuffer | get(char[] dst) | Относительный метод get для блоков данных. |
CharBuffer | get(char[] dst,
int offset,
int length) | Относительный метод get для блоков данных. |
abstract char | get(int index) | Абсолютный метод get. |
boolean | hasArray() | Определяет, поддерживает ли этот буфер доступный массив символов. |
int | hashCode() | Возвращает текущий хэш-код этого буфера. |
abstract boolean | isDirect() | Определяет, является ли этот буфер символов прямым. |
int | length() | Возвращает длину этого буфера символов. |
int | mismatch(CharBuffer that) | Находит и возвращает относительный индекс первого несовпадения между этим буфером и заданным буфером. |
abstract ByteOrder | order() | Получает порядок байтов этого буфера. |
abstract CharBuffer | put(char c) | Относительный метод put (дополнительная операция). |
CharBuffer | put(char[] src) | Относительный метод put для блоков данных (дополнительная операция). |
CharBuffer | put(char[] src,
int offset,
int length) | Относительный метод put для блоков данных (дополнительная операция). |
abstract CharBuffer | put(int index,
char c) | Абсолютный метод put (дополнительная операция). |
CharBuffer | put(String src) | Относительный метод put для блоков данных (дополнительная операция). |
CharBuffer | put(String src,
int start,
int end) | Относительный метод put для блоков данных (дополнительная операция). |
CharBuffer | put(CharBuffer src) | Относительный метод put для блоков данных (дополнительная операция). |
int | read(CharBuffer target) | Попытка считать символы в указанный буфер символов. |
abstract CharBuffer | slice() | Создаёт новый буфер символов, содержимое которого является совместно используемой подпоследовательностью содержимого этого буфера. |
abstract CharBuffer | subSequence(int start,
int end) | Создаёт новый буфер символов, представляющий указанную подпоследовательность этого буфера, относительно текущей позиции. |
String | toString() | Возвращает строку, содержащую символы в этом буфере. |
static CharBuffer | wrap(char[] array) | Оборачивает массив символов в буфер. |
static CharBuffer | wrap(char[] array,
int offset,
int length) | Оборачивает массив символов в буфер. |
static CharBuffer | wrap(CharSequence csq) | Оборачивает последовательность символов в буфер. |
static CharBuffer | wrap(CharSequence csq,
int start,
int end) | Оборачивает последовательность символов в буфер. |
Методы, объявленные в классе java.nio.Buffer
capacity, clear, flip, hasRemaining, isReadOnly, limit, limit, mark, position, position, remaining, reset, rewind Методы, объявленные в классе java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait Методы, объявленные в интерфейсе java.lang.CharSequence
chars, codePoints Методы
allocate
public static CharBuffer allocate(int capacity)
Выделяет новый буфер char.
Позиция нового буфера будет равна нулю, его предел — емкости, метка — неопределена, каждый элемент будет инициализирован нулём, а порядок байтов — native order базового оборудования. Буфер будет иметь backing array, а его array offset будет равен нулю.
- Параметры:
-
capacity— емкость нового буфера в символах - Возвращает:
- Новый буфер char
- Исключения:
-
IllegalArgumentException— еслиcapacity— отрицательное целое число
wrap
public static CharBuffer wrap(char[] array,
int offset,
int length) Оборачивает массив char в буфер.
Новый буфер будет опираться на заданный массив char; то есть, изменения в буфере приведут к изменению массива и наоборот. Емкость нового буфера будет array.length, его позиция — offset, предел — offset + length, метка — неопределена, а порядок байтов — native order базового оборудования. Его backing array будет заданным массивом, а array offset — нулём.
- Параметры:
-
array— массив, который будет основой нового буфера -
offset— смещение подмассива для использования; должно быть неотрицательным и не большеarray.length. Позиция нового буфера будет установлена в это значение. -
length— длина подмассива для использования; должна быть неотрицательной и не большеarray.length - offset. Предел нового буфера будет установлен вoffset + length. - Возвращает:
- Новый буфер char
- Исключения:
-
IndexOutOfBoundsException— если условия наoffsetиlengthпараметры не выполнены
wrap
public static CharBuffer wrap(char[] array)
Оборачивает массив char в буфер.
Новый буфер будет опираться на заданный массив char; то есть, изменения в буфере приведут к изменению массива и наоборот. Емкость и предел нового буфера будут array.length, его позиция — нулём, метка — неопределена, а порядок байтов — native order базового оборудования. Его backing array будет заданным массивом, а array offset — нулём.
- Параметры:
-
array— массив, который будет основой этого буфера - Возвращает:
- Новый буфер char
read
public int read(CharBuffer target)
throws IOException Попытка чтения символов в указанный буфер символов. Буфер используется как хранилище символов как есть: единственные изменения — результаты операции вставки. Никакое переворачивание или перемотка буфера не выполняются.
- Определено в:
-
readв интерфейсеReadable - Параметры:
-
target— буфер для чтения символов - Возвращает:
- Количество добавленных в буфер символов или -1, если этот источник символов достиг своего конца
- Исключения:
-
IOException— если произошла ошибка ввода-вывода -
NullPointerException— если целевой объект равен null -
ReadOnlyBufferException— если целевой объект — буфер только для чтения - С:
- 1.5
wrap
public static CharBuffer wrap(CharSequence csq,
int start,
int end) Оборачивает последовательность символов в буфер.
Содержимое нового буфера только для чтения будет содержанием заданной последовательности символов. Емкость буфера будет csq.length(), его позиция — start, предел — end, а метка — неопределена.
- Параметры:
-
csq— последовательность символов, из которой должен быть создан новый буфер символов -
start— индекс первого символа для использования; должен быть неотрицательным и не большеcsq.length(). Позиция нового буфера будет установлена в это значение. -
end— индекс символа, следующего за последним используемым символом; должен быть не меньшеstartи не большеcsq.length(). Предел нового буфера будет установлен в это значение. - Возвращает:
- Новый буфер символов
- Исключения:
-
IndexOutOfBoundsException— если условия наstartиendпараметры не выполнены
wrap
public static CharBuffer wrap(CharSequence csq)
Оборачивает последовательность символов в буфер.
Содержимое нового буфера только для чтения будет содержанием заданной последовательности символов. Емкость и предел нового буфера будут csq.length(), его позиция — нулём, а метка — неопределена.
- Параметры:
-
csq— последовательность символов, из которой должен быть создан новый буфер символов - Возвращает:
- Новый буфер символов
slice
public abstract CharBuffer slice()
Создаёт новый буфер char, содержимое которого является общим подпоследовательностью содержимого этого буфера.
Содержимое нового буфера начнётся с текущей позиции этого буфера. Изменения в содержимом этого буфера будут видны в новом буфере, и наоборот; значения позиции, предела и метки двух буферов будут независимыми.
Позиция нового буфера будет нулевой, его емкость и предел — количество оставшихся символов в этом буфере, метка — неопределена, а порядок байтов — такой же, как у этого буфера. Новый буфер будет прямым тогда и только тогда, когда этот буфер является прямым, и он будет только для чтения, если и только если этот буфер является только для чтения.
duplicate
public abstract CharBuffer duplicate()
Создаёт новый буфер char, который разделяет содержимое этого буфера.
Содержимое нового буфера будет таким же, как у этого буфера. Изменения в содержимом этого буфера будут видны в новом буфере, и наоборот; значения позиции, предела и метки двух буферов будут независимыми.
Значения емкости, предела, позиции, метки и порядка байтов нового буфера будут идентичны значениям этого буфера. Новый буфер будет прямым тогда и только тогда, когда этот буфер является прямым, и он будет только для чтения, если и только если этот буфер является только для чтения.
asReadOnlyBuffer
public abstract CharBuffer asReadOnlyBuffer()
Создаёт новый буфер char только для чтения, который разделяет содержимое этого буфера.
Содержимое нового буфера будет таким же, как у этого буфера. Изменения в содержимом этого буфера будут видны в новом буфере; однако сам новый буфер будет только для чтения и не позволит изменять общее содержимое. Значения позиции, предела и метки двух буферов будут независимыми.
Значения емкости, предела, позиции, метки и порядка байтов нового буфера будут идентичны значениям этого буфера.
Если этот буфер сам по себе только для чтения, то этот метод ведет себя точно так же, как метод duplicate.
- Возвращает:
- Новый буфер char только для чтения
get
public abstract char get()
Относительный метод get. Читает символ char в текущей позиции буфера и затем увеличивает позицию.
- Возвращает:
- Символ char в текущей позиции буфера
- Исключения:
-
BufferUnderflowException— если текущая позиция буфера не меньше его предела
put
public abstract CharBuffer put(char c)
Относительный метод put (дополнительная операция).
Записывает заданный символ char в этот буфер в текущей позиции и затем увеличивает позицию.
- Параметры:
-
c— записываемый символ char - Возвращает:
- Этот буфер
- Исключения:
-
BufferOverflowException— если текущая позиция буфера не меньше его предела -
ReadOnlyBufferException— если этот буфер только для чтения
get
public abstract char get(int index)
Абсолютный метод get. Читает символ char по заданному индексу.
- Параметры:
-
index— индекс, из которого будет считан символ char - Возвращает:
- Символ char по заданному индексу
- Исключения:
-
IndexOutOfBoundsException— еслиindexотрицательный или не меньше предела буфера
put
public abstract CharBuffer put(int index,
char c) Абсолютный метод put (дополнительная операция).
Записывает заданный символ char в этот буфер по заданному индексу.
- Параметры:
-
index— индекс, в который будет записан символ char -
c— значение символа char для записи - Возвращает:
- Этот буфер
- Исключения:
-
IndexOutOfBoundsException— еслиindexотрицательный или не меньше предела буфера -
ReadOnlyBufferException— если этот буфер только для чтения
get
public CharBuffer get(char[] dst,
int offset,
int length) Относительный метод массового get.
Этот метод передает символы char из этого буфера в заданный целевой массив. Если оставшихся символов char в буфере меньше, чем требуется для удовлетворения запроса, то есть, если length > remaining(), то символы не передаются и выбрасывается BufferUnderflowException.
В противном случае этот метод копирует length символов char из этого буфера в заданный массив, начиная с текущей позиции этого буфера и с заданного смещения в массиве. Позиция этого буфера затем увеличивается на length.
Другими словами, вызов этого метода в форме src.get(dst, off, len) имеет точно такой же эффект, как цикл
for (int i = off; i < off + len; i++)
dst[i] = src.get(); за исключением того, что он сначала проверяет, достаточно ли в этом буфере символов char, и потенциально гораздо эффективнее.- Параметры:
-
dst- Массив, в который будут записаны символы -
offset- Смещение в массиве первого символа для записи; должно быть неотрицательным и не большеdst.length -
length- Максимальное количество символов, которые будут записаны в заданный массив; должно быть неотрицательным и не большеdst.length - offset - Возвращает:
- Этот буфер
- Исключения:
-
BufferUnderflowException- Если в этом буфере осталось меньшеlengthсимволов -
IndexOutOfBoundsException- Если условия на параметрыoffsetиlengthне выполнены
get
public CharBuffer get(char[] dst)
Метод get для относительно большого объёма данных.
Этот метод переносит символы из этого буфера в заданный целевой массив. Вызов этого метода в форме src.get(a) ведет себя точно так же, как вызов
src.get(a, 0, a.length)
- Параметры:
-
dst- Целевой массив - Возвращает:
- Этот буфер
- Исключения:
-
BufferUnderflowException- Если в этом буфере осталось меньшеlengthсимволов
put
public CharBuffer put(CharBuffer src)
Метод put для относительно большого объёма данных (дополнительная операция).
Этот метод переносит оставшиеся символы из заданного исходного буфера в этот буфер. Если оставшихся символов в исходном буфере больше, чем в этом буфере, то есть, если src.remaining() > remaining(), то символы не переносятся, и выбрасывается исключение BufferOverflowException.
В противном случае этот метод копирует n = src.remaining() символов из заданного буфера в этот буфер, начиная с текущей позиции каждого буфера. Позиции обоих буферов затем увеличиваются на n.
Другими словами, вызов этого метода в форме dst.put(src) имеет точно такой же эффект, как цикл
while (src.hasRemaining())
dst.put(src.get()); за исключением того, что сначала проверяется наличие достаточного места в этом буфере, и это потенциально намного эффективнее.- Параметры:
-
src- Исходный буфер, из которого должны быть считаны символы; не должен быть этим буфером - Возвращает:
- Этот буфер
- Исключения:
-
BufferOverflowException- Если в этом буфере недостаточно места для оставшихся символов в исходном буфере -
IllegalArgumentException- Если исходный буфер является этим буфером -
ReadOnlyBufferException- Если этот буфер только для чтения
put
public CharBuffer put(char[] src,
int offset,
int length) Метод put для относительно большого объёма данных (дополнительная операция).
Этот метод переносит символы в этот буфер из заданного исходного массива. Если символов для копирования из массива больше, чем осталось в этом буфере, то есть, если length > remaining(), то символы не переносятся, и выбрасывается исключение BufferOverflowException.
В противном случае этот метод копирует length символов из заданного массива в этот буфер, начиная с заданного смещения в массиве и с текущей позиции этого буфера. Позиция этого буфера затем увеличивается на length.
Другими словами, вызов этого метода в форме dst.put(src, off, len) имеет точно такой же эффект, как цикл
for (int i = off; i < off + len; i++)
dst.put(a[i]); за исключением того, что сначала проверяется наличие достаточного места в этом буфере, и это потенциально намного эффективнее.- Параметры:
-
src- Массив, из которого должны быть считаны символы -
offset- Смещение в массиве первого символа для чтения; должно быть неотрицательным и не большеarray.length -
length- Количество символов для чтения из заданного массива; должно быть неотрицательным и не большеarray.length - offset - Возвращает:
- Этот буфер
- Исключения:
-
BufferOverflowException- Если в этом буфере недостаточно места -
IndexOutOfBoundsException- Если условия на параметрыoffsetиlengthне выполнены -
ReadOnlyBufferException- Если этот буфер только для чтения
put
public final CharBuffer put(char[] src)
Метод put для относительно большого объёма данных (дополнительная операция).
Этот метод переносит всё содержимое заданного исходного массива символов в этот буфер. Вызов этого метода в форме dst.put(a) ведет себя точно так же, как вызов
dst.put(a, 0, a.length)
- Параметры:
-
src- Исходный массив - Возвращает:
- Этот буфер
- Исключения:
-
BufferOverflowException- Если в этом буфере недостаточно места -
ReadOnlyBufferException- Если этот буфер только для чтения
put
public CharBuffer put(String src,
int start,
int end) Метод put для относительно большого объёма данных (дополнительная операция).
Этот метод переносит символы из заданной строки в этот буфер. Если символов для копирования из строки больше, чем осталось в этом буфере, то есть, если end - start > remaining(), то символы не переносятся, и выбрасывается исключение BufferOverflowException.
В противном случае этот метод копирует n = end - start символов из заданной строки в этот буфер, начиная с заданного start индекса и с текущей позиции этого буфера. Позиция этого буфера затем увеличивается на n.
Другими словами, вызов этого метода в форме dst.put(src, start, end) имеет точно такой же эффект, как цикл
for (int i = start; i < end; i++)
dst.put(src.charAt(i)); за исключением того, что сначала проверяется наличие достаточного места в этом буфере, и это потенциально намного эффективнее.- Параметры:
-
src- Строка, из которой должны быть считаны символы -
start- Смещение в строке первого символа для чтения; должно быть неотрицательным и не большеstring.length() -
end- Смещение в строке последнего символа для чтения, плюс один; должно быть неотрицательным и не большеstring.length() - Возвращает:
- Этот буфер
- Исключения:
-
BufferOverflowException- Если в этом буфере недостаточно места -
IndexOutOfBoundsException- Если условия на параметрыstartиendне выполнены -
ReadOnlyBufferException- Если этот буфер только для чтения
put
public final CharBuffer put(String src)
Метод put для относительно большого объёма данных (дополнительная операция).
Этот метод переносит всё содержимое заданной строки в этот буфер. Вызов этого метода в форме dst.put(s) ведет себя точно так же, как вызов
dst.put(s, 0, s.length())
- Параметры:
-
src- Исходная строка - Возвращает:
- Этот буфер
- Исключения:
-
BufferOverflowException- Если в этом буфере недостаточно места -
ReadOnlyBufferException- Если этот буфер только для чтения
hasArray
public final boolean hasArray()
Определяет, поддерживается ли этот буфер доступным массивом символов.
Если этот метод возвращает true, то методы array и arrayOffset могут безопасно быть вызваны.
- Указано в:
-
hasArrayв классеBuffer - Возвращает:
-
trueтогда и только тогда, когда этот буфер поддерживается массивом и не является только для чтения
array
public final char[] array()
Возвращает массив символов, который поддерживает этот буфер (дополнительная операция).
Изменения в содержимом этого буфера приведут к изменению содержимого возвращённого массива, и наоборот.
Вызовите метод hasArray перед вызовом этого метода, чтобы убедиться, что этот буфер имеет доступный поддерживающий массив.
- Указано в:
-
arrayв классеBuffer - Возвращает:
- Массив, который поддерживает этот буфер
- Исключения:
-
ReadOnlyBufferException- Если этот буфер поддерживается массивом, но является только для чтения -
UnsupportedOperationException- Если этот буфер не поддерживается доступным массивом
arrayOffset
public final int arrayOffset()
Возвращает смещение в поддерживающем массиве этого буфера первого элемента буфера (дополнительная операция).
Если этот буфер поддерживается массивом, то позиция буфера p соответствует индексу массива p + arrayOffset().
Вызовите метод hasArray перед вызовом этого метода, чтобы убедиться, что этот буфер имеет доступный поддерживающий массив.
- Указано в:
-
arrayOffsetв классеBuffer - Возвращает:
- Смещение в массиве этого буфера первого элемента буфера
- Исключения:
-
ReadOnlyBufferException- Если этот буфер поддерживается массивом, но является только для чтения -
UnsupportedOperationException- Если этот буфер не поддерживается доступным массивом
compact
public abstract CharBuffer compact()
Сжимает этот буфер (дополнительная операция).
Символы между текущей позицией буфера и его границей (если таковые имеются) копируются в начало буфера. То есть, символ с индексом p = position() копируется в индекс ноль, символ с индексом p + 1 копируется в индекс один, и так далее, пока символ с индексом limit() - 1 копируется в индекс n = limit() - 1 - p. Позиция буфера затем устанавливается в n+1, а его граница — в его ёмкость. Отметка (если определена) отбрасывается.
Позиция буфера устанавливается в количество скопированных символов, а не в ноль, так что вызов этого метода может быть немедленно последовать вызовом другого относительного метода put.
- Возвращает:
- Этот буфер
- Исключения:
-
ReadOnlyBufferException- Если этот буфер только для чтения
isDirect
public abstract boolean isDirect()
Определяет, является ли этот буфер символов прямым.
- Указано в:
-
isDirectв классеBuffer - Возвращает:
-
trueесли, и только если, этот буфер является прямым
hashCode
public int hashCode()
Возвращает текущий код хэша этого буфера.
Код хэша буфера символов зависит только от его оставшихся элементов; то есть, от элементов с position() до, включая, элемент в limit() - 1.
Поскольку коды хэша буферов зависят от содержимого, не рекомендуется использовать буферы в качестве ключей в хэш-картах или подобных структурах данных, если неизвестно, что их содержимое не изменится.
- Overrides:
-
hashCodeв классеObject - Возвращает:
- Текущий код хэша этого буфера
- См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
equals
public boolean equals(Object ob)
Определяет, равен ли этот буфер другому объекту.
Два буфера символов равны тогда и только тогда, когда:
У них одинаковый тип элементов,
У них одинаковое количество оставшихся элементов, и
Две последовательности оставшихся элементов, независимо от своих начальных позиций, точечно равны.
Буфер символов не равен ни одному другому типу объекта.
- Overrides:
-
equalsв классеObject - Параметры:
-
ob- Объект, с которым нужно сравнить этот буфер - Возвращает:
-
trueтогда и только тогда, когда этот буфер равен заданному объекту - См. также:
-
Object.hashCode(),HashMap
compareTo
public int compareTo(CharBuffer that)
Сравнивает этот буфер с другим.
Два буфера символов сравниваются путем лексикографического сравнения их последовательностей оставшихся элементов, без учета начальной позиции каждой последовательности в соответствующем буфере. Пары char элементов сравниваются так, как если бы вызывали Character.compare(char,char).
Буфер символов не сравним ни с каким другим типом объекта.
- Specified by:
-
compareToв интерфейсеComparable<CharBuffer> - Параметры:
-
that- объект для сравнения. - Возвращает:
- Отрицательное целое число, ноль или положительное целое число, если этот буфер меньше, равен или больше заданного буфера
mismatch
public int mismatch(CharBuffer that)
Находит и возвращает относительный индекс первого несовпадения между этим буфером и заданным буфером. Индекс относительный к position каждого буфера и будет в диапазоне от 0 (включительно) до меньшего из remaining элементов в каждом буфере (исключительно).
Если два буфера имеют общую префиксную часть, то возвращаемый индекс равен длине общей префиксной части, и это означает, что несовпадение между двумя буферами происходит в этом индексе в соответствующих буферах. Если один буфер является правильным префиксом другого, то возвращаемый индекс равен меньшему из оставшихся элементов в каждом буфере, и это означает, что индекс действителен только для буфера с большим количеством оставшихся элементов. В противном случае несовпадения нет.
- Параметры:
-
that- Буфер байтов, подлежащий проверке на несовпадение с этим буфером - Возвращает:
- Относительный индекс первого несовпадения между этим и заданным буфером, в противном случае -1, если несовпадения нет.
- Since:
- 11
toString
public String toString()
Возвращает строку, содержащую символы в этом буфере.
Первый символ результирующей строки будет символом в позиции этого буфера, а последний символ — символом с индексом limit() - 1. Вызов этого метода не изменяет позицию буфера.
- Specified by:
-
toStringв интерфейсеCharSequence - Overrides:
-
toStringв классеObject - Возвращает:
- Указанную строку
length
public final int length()
Возвращает длину этого буфера символов.
При рассматривании как последовательности символов длина буфера символов просто соответствует количеству символов между позицией (включительно) и пределом (исключительно); то есть, она эквивалентна remaining().
- Specified by:
-
lengthв интерфейсеCharSequence - Возвращает:
- Длина этого буфера символов
charAt
public final char charAt(int index)
Считывает символ по заданному индексу относительно текущей позиции.
- Specified by:
-
charAtв интерфейсеCharSequence - Параметры:
-
index- Индекс символа для чтения, относительно позиции; должен быть неотрицательным и меньшеremaining() - Возвращает:
- Символ по индексу
position() + index - Throws:
-
IndexOutOfBoundsException- Если условия наindexне соблюдаются
subSequence
public abstract CharBuffer subSequence(int start,
int end) Создает новый буфер символов, представляющий указанную подпоследовательность этого буфера, относительно текущей позиции.
Новый буфер будет совместно использовать содержимое этого буфера; то есть, если содержимое этого буфера изменяемо, то изменения в одном буфере приведут к изменению другого. Ёмкость нового буфера будет равна ёмкости этого буфера, его позиция будет position() + start, а его предел — position() + end. Новый буфер будет прямым тогда и только тогда, когда этот буфер является прямым, и он будет только для чтения, если и только если этот буфер является только для чтения.
- Specified by:
-
subSequenceв интерфейсеCharSequence - Параметры:
-
start- Индекс, относительный к текущей позиции, первого символа в подпоследовательности; должен быть неотрицательным и не большеremaining() -
end- Индекс, относительный к текущей позиции, символа, следующего за последним символом в подпоследовательности; должен быть не меньшеstartи не большеremaining() - Возвращает:
- Новый буфер символов
- Throws:
-
IndexOutOfBoundsException- Если условия наstartиendне соблюдаются
append
public CharBuffer append(CharSequence csq)
Добавляет указанную последовательность символов к этому буферу (необязательная операция).
Вызов этого метода в форме dst.append(csq) ведет себя точно так же, как вызов
dst.put(csq.toString())
В зависимости от спецификации toString для последовательности символов csq, вся последовательность может не быть добавлена. Например, вызов метода toString буфера символов вернет подпоследовательность, содержимое которой зависит от позиции и предела буфера.
- Specified by:
-
appendв интерфейсеAppendable - Параметры:
-
csq- Последовательность символов для добавления. Еслиcsqравноnull, то четыре символа"null"добавляются к этому буферу символов. - Возвращает:
- Этот буфер
- Throws:
-
BufferOverflowException- Если в этом буфере недостаточно места -
ReadOnlyBufferException- Если этот буфер только для чтения - Since:
- 1.5
append
public CharBuffer append(CharSequence csq,
int start,
int end) Добавляет подпоследовательность указанной последовательности символов в этот буфер (необязательная операция).
Вызов этого метода в форме dst.append(csq, start,
end) когда csq не равно null, ведет себя точно так же, как вызов
dst.put(csq.subSequence(start, end).toString())
- Specified by:
-
appendв интерфейсеAppendable - Параметры:
-
csq- Последовательность символов, из которой будет добавлена подпоследовательность. Еслиcsqравноnull, то символы будут добавлены как если быcsqсодержало четыре символа"null". -
start- Индекс первого символа в подпоследовательности -
end- Индекс символа, следующего за последним символом в подпоследовательности - Возвращает:
- Этот буфер
- Throws:
-
BufferOverflowException- Если в этом буфере недостаточно места -
IndexOutOfBoundsException- Еслиstartилиendотрицательны,startбольшеend, илиendбольшеcsq.length() -
ReadOnlyBufferException- Если этот буфер только для чтения - Since:
- 1.5
append
public CharBuffer append(char c)
Добавляет указанный символ к этому буферу (необязательная операция).
Вызов этого метода в форме dst.append(c) ведет себя точно так же, как вызов
dst.put(c)
- Specified by:
-
appendв интерфейсеAppendable - Параметры:
-
c- Добавляемый 16-битный символ - Возвращает:
- Этот буфер
- Throws:
-
BufferOverflowException- Если в этом буфере недостаточно места -
ReadOnlyBufferException- Если этот буфер только для чтения - Since:
- 1.5
order
public abstract ByteOrder order()
Получает порядок байтов этого буфера.
Порядок байтов буфера символов, созданного путем выделения или путем обертывания существующего массива char, — это native order базового оборудования. Порядок байтов буфера символов, созданного в качестве представления буфера байтов, — это порядок буфера байтов в момент создания представления.
- Возвращает:
- Порядок байтов этого буфера
© 1993, 2020, 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/11/docs/api/java.base/java/nio/CharBuffer.html