Программирование
Тема 7.2 Строки в Java
1
Класс String в Java
-
Пример 1: Способы создания строк


2
Класс 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(). Символы строки нумеруются с нуля.
3
Класс String в Java
-
Пример 2: Объединение и сравнение строк


4
Класс String в Java
-
Пример 3: Поиск в строке, разделение строки


5
Класс String в Java
-
В примере 2 показано использование методов класса System.String, которые используются для объединения (конкатенации) и сравнения строк.
-
Метод concat выполняет сцепление (конкатенацию) строк.
-
Метод join объединяет несколько строк через символ разделитель.
-
Метод compareTo сравнивает две строки и возвращают число. Если первая строка по алфавиту стоит выше второй, то возвращается число больше нуля. В противном случае возвращается число меньше нуля. И третий случай - если строки равны, то возвращается число 0.
-
Метод compareTo предназначен в основном для использования при сортировке строк.
-
Для сравнения строк удобно использовать метод equals. Метод equals возвращает true, если строки равны и false – в противном случае. Метод equalsIgnoreCase сравнивает строки без учета регистра.
-
С помощью метода indexOf мы можем определить индекс первого вхождения отдельного символа или подстроки в строке (пример 3).
-
Подобным образом действует метод lastIndexOf, только находит индекс последнего вхождения символа или подстроки в строку.
-
С помощью метода Split можно разделить строку на массив подстрок. В качестве параметра функция Split принимает регулярное выражение, которое задает разделители подстрок в строке (пример 3).
6
Класс String в Java
-
Пример 4: Обрезка начальных и конечных пробелов строки, извлечение подстроки


7
Класс String в Java
-
Пример 5: Замена в строке


8
Класс String в Java
-
Пример 6.1: Форматирование строк


9
Класс String в Java
-
Пакет java.io содержит класс PrintStream, который содержит методы printf и format