Читаем Java 7 полностью

Если число newLength окажется отрицательным, возникнет исключительная ситуация. Совет

Будьте осторожны, устанавливая новую длину объекта.

Количество символов в строке можно узнать, как и для объекта класса String, методом

length (), а емкость — методом capacity ().

Создать объект класса StringBuilder можно только конструкторами.

Конструкторы

В классе StringBuilder четыре конструктора:

□ StringBuilder () — создает пустой объект с емкостью 16 символов;

□ StringBuilder (int capacity) создает пустой объект заданной емкости capacity;

□ StringBuilder(String str) — создает объект емкостью str.length() + 16, содержащий строку str;

□ StringBuilder(CharSequence str) — создает объект, содержащий строку str.

Как добавить подстроку

В классе StringBuilder есть более десяти методов append (), добавляющих подстроку в конец строки. Они не создают новый экземпляр строки, а возвращают ссылку на ту же самую, но измененную строку.

Основной метод append(String str) присоединяет строку str в конец данной строки. Если ссылка str == null, то добавляется строка "null".

Два аналогичных метода работают с параметром типа StringBuffer и CharSequence.

Шесть методов append(type elem) добавляют примитивные типы boolean, char, int, long, float, double, преобразованные в строку.

Два метода присоединяют к строке массив str и подмассив sub символов, преобразованные в строку:

append(char[] str);

append(char[] sub, int offset, int len);

Еще один метод, append(CharSequence sub, int offset, int len), использует параметр типа CharSequence.

Тринадцатый метод, append(Object obj), добавляет просто объект. Перед этим объект obj преобразуется в строку своим методом toString ( ).

Как вставить подстроку

Более десяти методов insert () предназначены для вставки строки, указанной вторым параметром метода, в данную строку. Место вставки задается первым параметром метода, индексом символа строки, перед которым будет сделана вставка. Он должен быть неотрицательным и меньше длины строки, иначе возникнет исключительная ситуация. Строка раздвигается, емкость буфера при необходимости увеличивается. Методы возвращают ссылку на ту же самую, но преобразованную строку.

Основной метод insert(int ind, String str) вставляет строку str в данную строку перед ее символом с индексом ind. Если ссылка str == null, вставляется строка "null".

Например, после выполнения

String s = new StringBuilder("3TO большая строка").

insert(4, "не").toString();

получим s == "Это небольшая строка".

Метод sb.insert(sb.length (), "xxx") будет работать так же, как метод sb.append("xxx").

Шесть методов insert(int ind, type elem) вставляют примитивные типы boolean, char,

int, long, float, double, преобразованные в строку.

Два метода вставляют массив str и подмассив sub символов, преобразованные в строку:

insert(int ind, char[] str);

insert(int ind, char[] sub, int offset, int len);

Десятый метод вставляет просто объект: insert(int ind, Object obj). Объект obj перед добавлением преобразуется в строку своим методом toString().

Еще два метода:

insert(int ind, CharSequence str);

insert(int ind, CharSequence sub, int start, int end); работают с параметром типа CharSequence.

Как удалить подстроку

Метод delete (int begin, int end) удаляет из строки символы, начиная с индекса begin включительно до индекса end исключительно; если end больше длины строки, то до конца строки.

Например, после выполнения

String s = new StringBuilderC^TO небольшая строка").

delete(4, 6).toString();

получим s == "Это большая строка".

Если begin отрицательно, больше длины строки или больше end, возникает исключительная ситуация.

Если begin == end, удаление не происходит.

Как удалить символ

Метод deleteCharAt(int ind) удаляет символ с указанным индексом ind. Длина строки уменьшается на единицу.

Если индекс ind отрицателен или больше длины строки, возникает исключительная ситуация.

Как заменить подстроку

Метод replace (int begin, int end, String str) удаляет символы из строки, начиная с индекса begin включительно до индекса end исключительно, а если end больше длины строки, то до конца строки, и вставляет вместо них строку str.

Если begin отрицательно, больше длины строки или больше end, возникает исключительная ситуация.

Разумеется, метод replace () — это последовательное выполнение методов delete ()

и insert().

Как перевернуть строку

Метод reverse () меняет порядок расположения символов в строке на обратный. Например, после выполнения

String s = new StringBuilderC^TO небольшая строка"). reverse().toString();

получим s == "акортс яашьлобен отЭ".

Синтаксический разбор строки

Задача разбора введенного текста — парсинг (parsing) — вечная задача программирования, наряду с сортировкой и поиском. Написана масса программ-парсеров (parser), разбирающих текст по различным признакам. Есть даже программы, генерирующие парсеры по заданным правилам разбора: YACC, LEX и др. Большую помощь в разборе строки оказывает метод split ().

Перейти на страницу:

Все книги серии В подлиннике

Java 7
Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др. Дано подробное изложение последней версии сервлетов, технологии JSP и библиотек тегов JSTL. Около двухсот законченных программ иллюстрируют рассмотренные приемы программирования. Приведена подробная справочная информация о классах и методах Core Java API.

Ильдар Шаукатович Хабибуллин

Программирование, программы, базы данных

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных