Философия Java

Классы String и StringBuffer


В этом разделе представлен обзор методов для классов String и StringBuffer и вы, таким образом, сможете увидеть их взаимодействие. Здесь рассмотрены не все методы, а только наиболее важные, имеющие отношение к обсуждаемой теме. Перегруженным методам отведена отдельная колонка.

Сначала класс String:

Метод

Параметры, Перегрузка

Применение

Constructor

Перегруженные: значение по умолчанию, String, StringBuffer, массивы char, массивы byte.



Создает объекты String.

length()

Количество символов в String.

charAt()

int индекс

Возвращает символ с указанным индексом ячейки String.

getChars( ), getBytes( )

Начальная и конечная ячейки, которые будут скопированы и ячейка в внешнего массива, в которую будет произведено копирование.

Копирует char или byte в внешний массив.

toCharArray( )

Создает массив char[], хранящий символы из String.

equals( ), equals-IgnoreCase( )

String с которой проводится сравнение.

Проверка на равенство содержимого двух Strings.

compareTo( )

String с которой проводится сравнение.

Результат отрицательный, ноль или положительный, на основании лексиграфического упорядочения String и параметра. Заглавные и прописные символы не равны!

regionMatches( )

Смещение в текущей String, другой String и смещение и длина фрагмента для сравнения. Перегрузка добавляет "игнорировать регистр символов."

Результат boolean, свидетельствующий о совпадении фрагментов.

startsWith( )

String, который может начинать текущий String. Перегрузка добавляет параметр для указания смещения.

Результат boolean свидетельствует о том, начинается ли String с передаваемой в качестве параметра строки.

endsWith( )

String, который может завершать текущий String.

Результат boolean свидетельствует о том, завершается ли String передаваемой в качестве параметра строкой.
indexOf( ), lastIndexOf( )

Перегруженные: char, char и индекс начала, String, String и индекс начала.

Возвращает -1 если аргумент не найден в данном String, иначе возвращается индекс начала найденного фрагмента. lastIndexOf( ) осуществляет поиск начиная с конца строки.

substring( )

Перегруженный: Индекс начала, индекс начала, и индекс конца.

Возвращает новый объект String, содержащий указанный набор символов.

concat( )

String для объединения

Возвращает новый объект String, содерщащий символы оригинального объекта String и расположенные вслед за ними символы переданные в качестве параметра.

replace( )

Старый символ используемый для поиска, новый символ используемый для замены.

Возвращает новый объект String с результатами проведенной замены. Если искомый символ не найден, используется старый String.

toLowerCase( ) toUpperCase( )

Возвращает новый объект String с измененными на соответствующий регистр символами. Если изменения не требуется, используется старый String.

trim( )

Возвращает новый объект String с сокращением с обоих концов пробелов до одинарных. Если изменения не требуются, используется старый String.

valueOf( )

Перегрузка: Object, char[], char[] и смещение и указатель, boolean, char, int, long, float, double.

Возвращает String, содержащий символьное представление параметра.

intern( )

Создает один и только один String с уникальной последовательностью символов.

<
Как вы видите, все методы String возвращают новый объект String в тех случаях, когда необходимо его содержимое. Также обратите внимание на то что если модификация не требуется, возвращается ссылка на оригинал String. Это позволяет сэкономить память и избавляет от лишних трудностей.

Теперь рассмотрим класс StringBuffer:

Метод

Параметры, перегрузка

Применение

Constructor

Перегруженный: значение по умолчанию, длина создаваемого буфера, String используемый в качестве источника.

Создает новый объект StringBuffer.

toString( )

Создает String используя текущий StringBuffer.

length( )

Количество символов в StringBuffer.

capacity( )

Возвращает текущий объем занимаемой памяти.

ensure-

Capacity( )

Integer определяющий желаемый объем памяти.

StringBuffer резервирует как минимум указанный объем памяти.

setLength( )

Integer определяющий новую длину строки символов в буфере.

Расширяет ли укорачивает строку симоволов. Есл строка расширяется, новые ячейки заполняются нулями.

charAt( )

Integer указывающий на позицию элемента.

Возвращает char для заданной позиции буфера.

setCharAt( )

Integer, указывающий на позицию элемента и новое значение char для этого элемента.

Изменяет значение в указанной позиции.

getChars( )

Начало и конец копируемого фрагмента, массив в который производится копирование, индекс в целевом массиве.

Выполняет копирование символов char во внешний массив. В отличие от String здесь нет метода getBytes( ).

append( )

Перегруженный: Object, String, char[], char[] со смещением и длиной, boolean, char, int, long, float, double.

Параметр преобразуется в строку и добавляется в конец текущего буфера. При необходимости размер буфера увеличивается.

insert( )

Перегруженный, для всех первым параметром является смещение с которым выполняется вставка: Object, String, char[], boolean, char, int, long, float, double.

Второй параметр преобразуется в строку и вставляется в текущий буфер начиная с указанного смещения. При необходимости размер буфера увеличивается.

reverse( )

Порядок следования символов в буфере меняется на противоположный.

Наиболее часто используется метод append(), применяемый компилятором при обработке выражений String, связанных операторами '+' и '+='. Метод insert() имеет ту же форму и оба метода выполняют операции с использованием буфера, не создавая при этом новых объектов.


Содержание раздела