- •Оглавление
- •Предисловие
- •Введение
- •Глава 1. Средства разработки приложений
- •1.1. Системные требования
- •1.2. Введение в NetBeans
- •1.3. Установка NetBeans
- •1.4. Первый запуск NetBeans
- •1.5. Интерфейс пользователя
- •1.6. Настройки среды
- •1.7. Создание проекта
- •Глава 2. Язык программирования Java
- •2.1. Первое приложение
- •2.2. Метод main
- •2.3. Основные понятия языка Java
- •2.3.1. Переменные и константы
- •2.4. Примитивные типы данных
- •2.4.1. Целые и символьные типы(byte, short, char, int, long)
- •2.4.2. Логический тип Boolean
- •2.4.3. Вещественные типы (float и double)
- •2.5. Ссылочные типы
- •2.6. Выражения и операторы
- •2.6.1. Логические операторы
- •2.6.2. Целочисленные битовые операторы
- •2.6.3. Арифметические операторы
- •2.6.4. Приоритеты выполнения операторов
- •2.6.5. Преобразование типов
- •2.6.6. Оболочечные классы
- •2.7. Класс Math
- •2.8. Сложные типы данных и строки
- •2.8.1. Массивы
- •2.8.2. Строки
- •2.9. Управляющие конструкции
- •2.9.1. Составной оператор
- •2.9.2. Условный оператор if
- •2.9.3. Оператор выбора
- •2.9.4. Операторы цикла
- •2.9.5. Операторы перехода
- •Глава 3. Введение в ООП
- •3.1. Основные принципы ООП
- •3.2. Состав структура и основные свойства классов
- •3.2.1. Описание полей класса
- •3.2.2. Оператор new
- •3.2.3. Описание методов
- •3.2.4. Модификаторы
- •3.2.5. Конструкторы
- •Совмещение методов
- •Глава 4. Рефакторинг
- •Глава 5. Ввод и вывод в Java
- •Глава 6. Графический интерфейс пользователя GUI
- •6.1. Компоненты и контейнеры
- •6.2. Встроенные пакеты GUI классов на основе библиотеки awt
- •6.2.1. Метка Label
- •6.2.2. Кнопка Button
- •6.2.3. Кнопка выбора CheckBox
- •6.2.4. Радио-кнопка Radiobutton
- •6.2.5. Поле ввода TextField
- •6.2.6. Поле ввода TextArea
- •6.3. Использование визуального редактора для проектирования ГИП
- •6.4. Графика в Java
- •6.5. Обработка событий
Массивы, имеющие более двух индексов (измерений), задаются аналогично с указанием необходимого количества квадратных скобок. Java поддерживает до 60 измерений для массивов.
2.8.2. Строки
Строки являются сложным типом данных, который служит для представления текста в прогрмме. Для работы со строками в Java предназначен класс String, таким образом, строки в Java являются объектами.
Класс String содержит методы и процедуры работы со строковыми данными. Объект типа String – строка с произвольным набором символов от 0 до 2*109. Строки (строковые литералы) представляют собой последовательность символов, заключенных в двойные кавычки – “B”, “Alpha”, “B11jf”, “Моя строка”, “”.
Одним из недостатков Java является несовместимость строкового типа и символьного, то есть “А” - строка, состоящая из одного символа, а 'А' – число ASCII кода символа “А”.
Строки можно складывать друг с другом, с переменными и константами типа char, а так же можно прибавлять к строкам значение числовых переменных, которое автоматически преобразовывается в строковое при помощи метода toString(), находящегося в классе
Object.
Для того, чтобы подробнее ознакомиться с новым типом, создайте класс с именем My_String, добавьте метод main(String[] args) и введите предложенный ниже код:
public class My_String {
public static void main(String[] args) { String s1 = "Привет", s2;
char ch1 = ‘!’;
s2 = "М"+"и"+"р"+ch1; System.out.println(s1+s2);
}
}
В результате выполнения программы вы увидите в консольном окне знакомую надпись «Привет Мир!», которая была получена сложением двух строк s1 и s2. Строка s2 строилась из 4-х частей, одна из которых является переменной типа char.
Любая последовательность символов (строка) является объектом (экземпляром класса String), а переменные типа String являются ссылками на эти объекты. Строки являются неизменяемыми объектами, поэтому при изменении содержимого создается новый объект класса String, а старая строка превращается в «мусор», т.е неиспользуемые данные в памяти. В связи с этим следует помнить, что при многократном изменении строк, в памяти остается много мусора.
Переменные типа String не содержат внутри строк, а только являются ссылкой на ячейку памяти, где хранятся эти объекты-строки. Наиболее распространенной ошибкой у начинающих является использование в сравнении строк оператора «==». В результате выполнения происходит сравнение не содержимого строк, а адресов
(ссылок), на которые ссылаются переменные типа String. Пример.
public class My_String {
public static void main(String[] args) { String s1 = "String1", s2 = "String2"; if (s1==s2)
System.out.println(“s1 равно s2”) else
System.out.println(“s1 не равно s2”)
}
}
Условие s1==s2 не выполняется именно потому, что s1 и s2 содержат разные адреса памяти. Однако попробуем изменить строку s2 = "String2" на s2 = "String1”. Теперь строки равны, и после выполнения программы вы увидите, что условие s1==s2 будет истинным и на консоли появится сообщение «s1 равно s2». Компилятор Java анализирует имеющиеся в коде программы литерные константы и в случае совпадения двух или более использует для них один и тот же объект-строку.
Для корректного сравнения двух строк используется метод equals(object). Для сравнения строк в условии необходимо записать
s1.equals(s2).
Класс String имеет ряд методов для работы со строками, рассмотрим часто используемые методы в табл. 15.
|
|
|
|
Та блица 15 |
|
Методы для работы со строками |
|||||
Метод |
|
Описание |
|||
s1.charAt(i) |
символ в строке s1, имеющий индекс i |
||||
(индексация начинается с нуля) |
|||||
s1.length() |
возвращает длину строки |
||||
|
возвращает |
true в случае, когда строка |
|||
s1.startsWith(subS) |
s1 начинается |
последовательностью |
|||
|
символов, содержащихся в строке subS |
||||
|
возвращает |
true в случае, когда строка |
|||
s1.endsWith(subS) |
s1 заканчивается последовательностью |
||||
|
символов, содержащихся в строке subS |
||||
|
возвращает |
строку, |
скопированную и |
||
s1.substring(i,j) |
строки s1 начинающуюся с символа с |
||||
индексом |
i |
и |
заканчивающуюся |
||
|
|||||
|
символом с индексом j |