- •Интернет технологии
- •Методические рекомендации по изучению дисциплины
- •Рабочая учебная программа
- •2. Перечень тем лабораторных занятий, их содержание и объем в часах
- •3.Индивидуальные практические работы, их характеристики
- •Теоретический раздел Лекции
- •1. Общая характеристика языкаJava
- •1.1 Что такоеJava?
- •1.2 ВыполнениеJava-программы
- •1.3 Что такоеJdk?
- •1.4 Установка и использованиеJdk
- •2. СинтаксисJava.
- •2.1 Первая программа наJava
- •2.2 Комментарии
- •2.3 Константы
- •2.4 Имена
- •2.5 Примитивные типы и операции над ними.
- •2.6 Выражения
- •2.7 Операторы
- •2.7 Массивы
- •3. Объектно-ориентированное программирование в Java
- •3.1 Парадигмы программирования
- •3.2 Принципы объектно-ориентированного программирования
- •3.3 Как описать класс и подкласс
- •3.4 Абстрактные методы и классы
- •3.5 Окончательные члены и классы
- •3.6 Класс Object
- •3.7 Конструкторы класса
- •3.7 Операция new
- •3.8 Статические члены класса
- •3.9 Метод main()
- •4. Пакеты и интерфейсы
- •4.1 Пакет и подпакет
- •4.2 Права доступа к членам класса
- •4.3 Размещение пакетов по файлам
- •4.4 Импорт классов и пакетов
- •4.5 Интерфейсы
- •5. Классы-оболочки
- •5.1 Числовые классы
- •5.2 Класс Boolean
- •5.3 Класс Character
- •5.4 Класс Class
- •6. Работа со строками
- •6.1 Класс String
- •6.2 Манипуляции строками
- •6.3 Класс StringBuffer
- •6.4 Синтаксический разбор строки
- •7. Классы-коллекции
- •7.1Класс Vector
- •7.2 Класс Stack.
- •7.3 Класс Hashtable
- •7.4 Класс Properties
- •8. Система ввода/вывода в Java
- •8.1 Класс File
- •8.2 Ввод и вывод
- •9. Потоки выполнения
- •9.1 КлассThread
- •9.2 Синхронизация потоков выполнения
- •9.3 Приоритеты подпроцессов
- •9.4 Подпроцессы-демоны
- •9.5 Группы подпроцессов
- •10. Сетевые средстваJava
- •10.1 Общие принципы взаимодействия по сети
- •10.2 Работа в www
- •10.3 Работа по протоколу tcp
- •10.4 Работа по протоколу udp
- •11. Работа с бд черезJdbc
- •11.1 Связь с базами данных через jdbc
- •12.1 Удаленный интерфейс
- •12.2 Регистрация
- •12.3 Создание якорей и скелетов
- •12.4 Использование удаленных объектов
- •13. СозданиеXml-документа для описания некоторых данных
- •Глава 1. Обработка документов xml 77
- •Практический раздел
6.3 Класс StringBuffer
Объекты класса StringBuffer — это строки переменной длины. Только что созданный объект имеет буфер определеннойемкости (capacity), по умолчанию достаточной для хранения 16 символов. Емкость можно задать в конструкторе объекта.
Как только буфер начинает переполняться, его емкость автоматически увеличивается, чтобы вместить новые символы.
В любое время емкость буфера можно увеличить, обратившись к методу ensureCapacity(int minCapacity)
Этот метод изменит емкость, только если minCapacity будет больше длины хранящейся в объекте строки. Емкость будет увеличена по следующему правилу. Пусть емкость буфера равна N. Тогда новая емкость будет равна
Мах(2 * N + 2, minCapacity)
Таким образом, емкость буфера нельзя увеличить менее чем вдвое.
Методом setLength (int newLength) можно установить любую длину строки.
Если она окажется больше текущей длины, то дополнительные символы будут равны ' \uOOOO' . Если она будет меньше текущей длины, то строка будет обрезана, последние символы потеряются, точнее, будут заменены символом'\uOOOO' . Емкость при этом не изменится.
Если число newLength окажется отрицательным, возникнет исключительная ситуация.
Совет
Будьте осторожны, устанавливая новую длину объекта.
Количество символов в строке можно узнать, как и для объекта класса String , методомlength () , а емкость — методомcapacity ().
Создать объект класса StringBuf fer можно только конструкторами.
В классе StringBuffer три конструктора:
StringBuffer () — создает пустой объект с емкостью 16 символов;
StringBuffer .(int capacity) — создает пустой объект заданной емкостиcapacity ;
StringBuffer (String str) — создает объект емкостьюstr .length ()+ 16, содержащий строкуstr .
Как добавить подстроку
В классе StringBuffer есть десять методовappend (), добавляющих подстроку в конец строки. Они не создают новый экземпляр строки, а возвращают ссылку на ту же самую, но измененную строку.
Основной метод append (String str) присоединяет строкуstr в конец данной строки. Если ссылкаstr == null, то добавляется строка"null".
Шесть методов append (type elem) добавляют примитивные типыboolean, char, int, long, float, double, преобразованные в строку.
Два метода присоединяют к строке массив str и подмассивsub символов,
преобразованные в строку: append (char [] str) И append (char [.] , sub, int offset, int len).
Десятый метод добавляет просто объект append (Object obj). Перед этим объектobj преобразуется в строку своим методомtoString ().
Как вставить подстроку
Десять методов insert () предназначены для вставки строки, указанной параметром метода, в данную строку. Место вставки задается первым параметром методаind . Это индекс элемента строки, перед которым будет сделана вставка. Он должен быть неотрицательным и меньше длины строки, иначе возникнет исключительная ситуация. Строка раздвигается, емкость буфера при необходимости увеличивается. Методы возвращают ссылку ни ту же преобразованную строку.
Основной метод insert (int ind, String str) вставляет строкуstr в данную строку перед ее символом с индексомand . Если ссылка str == null вставляется строка"null".
Например, после выполнения
String s = new StringBuffer("Это большая строка"). 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, chart] str)
insert(int ind, char[] sub, int offset, int len)
Десятый метод вставляет просто объект :
insert(int ind, Object obj)
Объект obj перед добавлением преобразуется в строку своим методом
toString ().
Как удалить подстроку
Метод delete tint begin, int end) удаляет из строки символы, начиная с индексаbegin включительно до индексаend исключительно, еслиend больше длины строки, то до конца строки.
Например, после выполнения
String s = new StringBuffer("Это небольшая строка").
delete(4, 6).toString();
получим s == "Это большая строка".
Если begin отрицательно, больше длины строки или большеend , возникает исключительная ситуация.
Если begin == end, удаление не происходит.
Как заменить подстроку
Метод replace (int begin, int end. String str ) удаляет символы из строки, начиная с индексаbegin включительно до индексаend исключительно, еслиend больше длины строки, то до конца строки, и вставляет вместо них строкуstr .
Если begin отрицательно, больше длины строки или большеend , возникает исключительная ситуация.
Разумеется, метод replace () — это последовательное выполнение методов
delete ()и insert ().
Как перевернуть строку
Метод reverse о меняет порядок расположения символов в строке на обратный порядок.
Например, после выполнения
String s = new StringBuffer("Это небольшая строка"),
reverse().toString();
получим s == "акортс яашьлобен отЭ".