Слайд 1Программирование
Тема 7.2 Строки в Java
Слайд 2 Класс String в Java
Пример 1: Способы создания строк
Слайд 3 Класс String в Java
Строка в языке Java –
это не массив символов типа char, а объект соответствующего класса.
Для
работы со строками в Java используются классы String, StringBuffer и StringBuilder_пакета java.lang.
Cимволы в строках хранятся в кодировке Unicode, в которой каждый символ занимает два байта. Тип каждого символа char. Каждый символ строки имеет индекс. Индекс первого символа строки равен нулю.
Строку String можно создать с использованием оператора new. Конструкторы класса String позволяет инициализировать строки различными способами, например, пустой строкой, строковой константой, массивом символов.Также каждая строковая константа порождает объект класса String (пример 1).
Класс String позволяет создавать строковые объекты, которые нельзя изменить. Методы класса, модифицирующие объект String, реально не изменяют его, а создают дополнительный объект String.
Ссылку на объект класса String можно изменить так, чтобы она указывала на другой объект и тем самым на другую строку.
Классы StringBuffer и StringBuilder допускают изменения в строке.
Строки можно объединять, используя операцию конкатенации (+), это единственная операция, применимая для строк. Все остальные манипуляции со строками выполняются с помощью методов.
Поскольку объект класса String неизменяем, то результатам сложения s4 = s4 + “lo” (пример 1) будет новый объект. Одинаковые строковые константы размещаются в одном пуле строк (пример 1, ссылки s1, s2 и s3 – ссылаются на одну и ту же область памяти (объект) с константой “hello” ).
Если использовать операцию сравнения ( == ) со строками, то она будет сравнивать ссылки на строки, а не сами строки (пример 1).
Для чтения символа строки с указанным номером используется метод charAt(). Символы строки нумеруются с нуля.
Слайд 4 Класс String в Java
Пример 2: Объединение и сравнение
строк
Слайд 5 Класс String в Java
Пример 3: Поиск в строке,
разделение строки
Слайд 6 Класс String в Java
В примере 2 показано использование
методов класса System.String, которые используются для объединения (конкатенации) и сравнения
строк.
Метод concat выполняет сцепление (конкатенацию) строк.
Метод join объединяет несколько строк через символ разделитель.
Метод compareTo сравнивает две строки и возвращают число. Если первая строка по алфавиту стоит выше второй, то возвращается число больше нуля. В противном случае возвращается число меньше нуля. И третий случай - если строки равны, то возвращается число 0.
Метод compareTo предназначен в основном для использования при сортировке строк.
Для сравнения строк удобно использовать метод equals. Метод equals возвращает true, если строки равны и false – в противном случае. Метод equalsIgnoreCase сравнивает строки без учета регистра.
С помощью метода indexOf мы можем определить индекс первого вхождения отдельного символа или подстроки в строке (пример 3).
Подобным образом действует метод lastIndexOf, только находит индекс последнего вхождения символа или подстроки в строку.
С помощью метода Split можно разделить строку на массив подстрок. В качестве параметра функция Split принимает регулярное выражение, которое задает разделители подстрок в строке (пример 3).
Слайд 7 Класс String в Java
Пример 4: Обрезка начальных и
конечных пробелов строки, извлечение подстроки
Слайд 8 Класс String в Java
Пример 5: Замена в строке
Слайд 9 Класс String в Java
Пример 6.1: Форматирование строк
Слайд 10 Класс String в Java
Пакет java.io содержит класс PrintStream,
который содержит методы printf и format.
Объект System.out — это объект
PrintStream, поэтому вы можете вызывать методы PrintStream используя System.out. Например: System.out.format(.....);
Синтаксис методов одинаков: public PrintStream format(String format, Object... args)
где format — это строка которая определяет шаблон, согласно которому будет происходить форматирование, args — это список переменных, для печати по заданному шаблону.
Строка format содержит обычный текст и специальные форматирующие символы. Эти символы начинаются со знака процента (%) и заканчиваются символом, который определяет тип переменной для форматирования.
Следующая таблица содержит некоторые форматирующие символы и флаги:
Слайд 12 Класс String в Java
Пример 6.2: Форматирование строк
Слайд 13 Класс String в Java
Пример 6.3: Использование класса Formatter
Слайд 14 Класс StringBuilder в Java
Пример 7: Создание строк StringBuilder
Слайд 15 Класс StringBuilder в Java
Пример 8: Использование методов класса
StringBuilder
Слайд 16 Класс StringBuilder в Java
Объекты типа StringBuilder отличаются от объектов типа String тем,
что они могут быть изменены. По сути они представляют из
себя массивы переменной длины, содержащие последовательность символов. Длина и содержание последовательности могут быть изменены вызовом соответствующих методов.
StringBuilder необходимо использовать в случаях, когда это поможет упростить код или если это необходимо для лучшей производительности. Если вам необходимо объединить большое количество строк, использование StringBuilder будет более эффективным.
Класс StringBuilder как и класс String, имеет метод length(), который возвращает длину последовательности символов объекта.
В отличие от строк String, в StringBuilder, помимо длины есть capacity — количество символов под которое выделена память. Емкость (capacity), возвращаемая методом capacity(), всегда больше или равна длине строки (обычно больше) и автоматически будет увеличина при необходимости.
Конструкторы StringBuilder:
Слайд 17 Класс StringBuilder в Java
Класс StringBuilder содержит несколько методов относящихся к
длине и емкости, которых нет в классе String:
Некоторые методы (например, append(), insert(),
или setLength()) могут увеличить длину последовательности символов в stringbuilder’е , так что длина может оказаться больше текущей емкости. Когда это происходит — емкость автоматически увеличивается.
Основные функции StringBuilder, которых нет в String: append() и insert(), которые перегружены для приема разного типа данных. Каждый конвертирует аргумент в строку и добавляет её в строку stringbuilder’а. Метод append всегда добавляет символы в конец существующей последовательности, тогда как метод insert добавляет символы в указанное место.
Слайд 18 Класс StringBuilder в Java
Некоторые методы класса StringBuilder:
Слайд 19 Класс StringBuilder в Java
Вы можете использовать любой метод
класса String на объекте класса StringBuilder предварительно сконвертировав его в строку методом toString(). Затем из
строки можно опять сделать stringbuilder, используя конструктор: StringBuilder(String str).
Слайд 20 Класс StringBuilder в Java
Пример 9: Извлечение всех больших
букв из строки
Слайд 21
Контрольные вопросы
Строки класса String в Java: понятие, способы создания, допустимые
операции, основные методы класса String. Примеры.
Строки класса StringBuider в Java:
понятие, способы создания, методы класса StringBuider. Примеры.