JavaRush /Java блог /Архив info.javarush /Управление строками, функции для работы со строками в Jav...
articles
15 уровень

Управление строками, функции для работы со строками в Java. Часть 2

Статья из группы Архив info.javarush
Управление строками, функции для работы со строками в Java. Часть 1 Продолжаем изучение строк в Java. Основы работы со строками можно посмотреть в уроке «Строки в Java». Управление строками, функции для работы со строками в Java. Часть 2 - 1

Методы для сравнения строк

Класс String содержит методы для сравнения строк и частей строк. Следующая таблица описывает эти методы: Управление строками, функции для работы со строками в Java. Часть 2 - 2Следующая программа использует метод regionMatches для нахождения строк в другой строке: Управление строками, функции для работы со строками в Java. Часть 2 - 3Программа выведет Eggs. Программа пробегает по строке символ за символом, для каждого символа программа вызывает метод regionMatches, передавая ему позицию символа, для поиска строки findMe.

Класс StringBuilder

Объекты типа StringBuilder отличаются от объектов типа String тем, что они могут быть изменены. По сути они представляют из себя массивы переменной длины, содержащие последовательность символов. Длина и содержание последовательности могут быть изменены вызовом соответствующих методов. StringBuilder необходимо использовать в случаях, когда это поможет упростить код (пример ниже) или если это необходимо для лучшей производительности. Если вам необходимо объединить большое количество строк, использование StringBuilder будет более эффективным.

Length и Capacity

Класс StringBuilder как и класс String, имеет метод length(), который возвращает длину последовательности символов объекта. В отличие от строк, в StringBuilder, помимо длины есть capacity — количество символов под которое выделена память. Емкость (capacity), возвращаемая методом capacity(), всегда больше или равна длине строки (обычно больше) и автоматически будет увеличина при необходимости. Управление строками, функции для работы со строками в Java. Часть 2 - 4Например, следующий код:

StringBuilder sb = new StringBuilder();
sb.append("Greetings");
создаст string builder длиной 9 символов и емкостью 16: Управление строками, функции для работы со строками в Java. Часть 2 - 5Класс StringBuilder содержит несколько методов относящихся к длине и емкости, которых нет в классе String: Управление строками, функции для работы со строками в Java. Часть 2 - 6Некоторые операции (например, append(), insert(), или setLength()) могут увеличить длину последовательности символов в stringbuilder’е , так что длина может оказаться больше текущей емкости. Когда это происходит — емкость автоматически увеличивается.

Функции StringBuilder

Основные функции StringBuilder, которых нет в String: append() и insert(), которые перегружены для приема разного типа данных. Каждый конвертирует аргумент в строку и добавляет её в строку stringbuilder’а. Метод append всегда добавляет символы в конец существующей последовательности, тогда как метод insert добавляет символы в указанное место. Некоторые методы класса StringBuilder. Управление строками, функции для работы со строками в Java. Часть 2 - 7Вы можете использовать любой метод класса String на объекте класса StringBuilder предварительно сконвертировав его в строку методом toString(). Затем из строки можно опять сделать stringbuilder, используя конструктор: StringBuilder(String str).

Пример

Программа StringDemo, которую мы рассматривали в предыдущих уроках Java — пример того, когда использование StringBuilderвместо String делает программу проще. StringDemo переворачивает палиндром: Управление строками, функции для работы со строками в Java. Часть 2 - 8Программа выведет:

doT saw I was toD
Для того чтобы перевернуть сроку программа сначала конвертирует строку в массив символов (первый цикл), далее переворачивает массив и обратно конвертирует массив в строку. Если вы конвертируете строку palindrome в stringbuilder, вы сможете использовать метод reverse() класса StringBuilder. Код станет чище и проще читаемым: Управление строками, функции для работы со строками в Java. Часть 2 - 9Вывод:

doT saw I was toD
Обратите внимание, что в функцию println() мы передаем StringBuilder:

System.out.println(sb);
Метод sb.toString() будет неявно вызван, как и у любого другого объекта, переданного в println(). Ссылка на первоисточник: Управление строками, функции для работы со строками в Java. Часть 2
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ