- •Иркутский государственный университет путей сообщения кафедра “информатика” программирование на языке java
- •Иркутск
- •Содержание
- •Предисловие
- •Алфавит языка
- •Ключевые слова
- •Типы данных
- •Литералы (константы)
- •Комментарии
- •Переменные
- •Математические функции
- •Выражения
- •Выражения целого типа
- •Примеры записи выражений целого типа:
- •Примеры вычислений выражений целого типа:
- •Выражения действительного типа
- •Примеры записи выражений действительного типа
- •Примеры вычислений выражений действительного типа:
- •Выражения логического типа
- •Операторы присваивания
- •Variable имяПеременной might not have been initialized
- •Примеры записи операторов присваивания:
- •Ввод и вывод данных
- •Ввод и вывод с помощью диалоговых окон
- •Import javax.Swing.*;
- •Консольный вывод
- •Консольный ввод с помощью класса Scanner
- •Import java.Util.*; //импорт пакета
- •Структура программы
- •Import javax.Swing.*;
- •Import java.Util.*;
- •Алгоритм и его свойства
- •Схемы алгоритмов
- •Пример записи алгоритма:
- •Базовые структуры
- •Цепочка
- •Ветвления
- •Альтернатива
- •If (условие)
- •Вариант 2 – с использованием операции конъюнкции
- •Import javax.Swing.*;
- •Int c, y1, y2, kl, day, month, year;
- •Часто встречающиеся ошибки программирования:
- •Import javax.Swing.*;
- •Переключатель
- •Int month;
- •Часто встречающиеся ошибки программирования:
- •Бесконечные циклы
- •Циклы с предусловием
- •Программа
- •Программа
- •Часто встречающиеся ошибки программирования:
- •Циклы с постусловием
- •Программа
- •Int month;
- •Циклы с параметром
- •Действия цикла:
- •Операторы прерывания break, continue, return, System.Exit
- •Структуры данных
- •Массивы
- •Import javax.Swing.*;
- •Import java.Util.*;
- •Int n, m, matrMin, matrMax;
- •Import javax.Swing.*;
- •Import java.Util.*;
- •Int n, vectorMin, vectorMax, temp;
- •VectorMin, vectorMax, n);
- •Import javax.Swing.*;
- •Import java.Util.*;
- •Int n, vectorMin, vectorMax, temp;
- •VectorMin, vectorMax, n);
- •Методы для работы с массивами
- •Класс String
- •Методы для работы со строками класса String
- •Класс StringBuffer
- •Методы для работы со строками класса StringBuffer
- •Import java.Io.*;
- •Import javax.Swing.*;
- •Import java.Io.*;
- •Import javax.Swing.*;
- •Обработка исключительных ситуаций
- •If (переменная name вышла за диапазон)
- •Import java.Io.*;
- •Import javax.Swing.*;
- •Import java.Io.*;
- •Import javax.Swing.*;
Класс String
Создать строку текста класса Stringможно оператором присваивания:
String text=”Это текстовая строка”;
При этом создается объектная переменная (ссылка) textна объект с текстом. Если изменить этот текст:
String text=”Это новая текстовая строка”;
То создается новыйобъект с новым текстом, на который сейчас будет указывать ссылкаtext. Старый объект со старым текстом остается в памяти компьютера до “уборки мусора”. При этом создается полная иллюзия того, что мы работаем с одной и той же строкой.
Создать строку текста можно также с помощью многочисленных конструкторовклассаString:
создание пустойстроки:
String text=new String();
создана пустая строка text;
создание копииобъекта-строки:
String text=”Это текстовая строка”;
String newText=new String(text);
создан новый объект-строка newTextс таким же содержанием, как и объектtext;
создание новой строки на основе символьного массива:
char symbols[]={‘J’, ‘a’, ‘v’, ‘a’};
String text=new String(symbols);
создан новый объект-строка textс содержанием“Java”,
создание новой строки на основе массива байтов:
byte nums[]={65, 66, 67, 68};
String text=new String(nums);
создан новый объект-строка textс содержанием“ABCD” (используютсяASCII-коды символов). Такая ситуация возникает при чтенииASCII-файлов, извлечении информации из базы данных или при передаче информации по сети. Если исходный кириллическийASCII-файл (ASCII-текст) был в кодировкеCP-1251 (windows 1251), тоJAVA-строка будет создана правильно.
Методы для работы со строками класса String
В классе Stringсобрано много методов для работы со строками. Вот некоторые из них:
определение длиныстроки:
String str=”Это текстовая строка”;
int n=str.length(); // n=20
определение пустойстроки:
String str=””;
boolean value=str.isEmpty(); // value=true – строка пустая
определение символав строке по его индексу:
String str=”Это текстовая строка”;
char ch=str.charAt(5); // ch=’е’ – нумерация начинается с нуля!
преобразованиестроки в массивсимволов (ASCII-кодировка):
String str=”Это строка”;
char chArray[]=str.toCharArray();
создан массив символов chArray[] с содержанием{‘Э’,‘т’,‘о’,‘ ’,‘с’,‘т’, ‘р’,‘о’,‘к’,‘а’};
преобразованиестроки в массивбайтовпо ASCII-кодировке:
String str=”ABCDE”;
byte byteArray[]=str.getBytes();
создан массив байтов byteArray[] с содержанием{65, 66, 67, 68, 69};
сравнениедвух строкс учетом регистра:
String str_1=”Даша”;
String str_2=”даша”;
boolean result=str_1.equals(str_2); // result=true, т.к. Даша>даша
строки сравниваются посимвольно (по ASCII-кодам) слева направо до первого несовпадения,
сравнениедвух строк безучета регистра:
String str_1=”Вася Пупкин”;
String str_2=”ВАСЯ ПУПКИН”;
boolean result=str_1.equalsIgnoreCase(str_2); // result=true
Внимание!Для сравнения строкнельзяиспользовать операции==и!=.
поисксимволов и подстрок в строке сначаластроки:
String str=”Наша Маша шагает в шапке”;
char chr=’а’;
int result=str.indexOf(chr); // result=1 (нумерация символов // начинается с нуля)
String str_1=”ша”;
result=str.indexOf(str_1); // result=2 – первое “ша”
// начинается со второго символа
если подстрока не найдена, то результат поиска равен-1,
поисксимволов и подстрок в строке сконцастроки:
String str=”Наша Маша шагает в шапке”;
char chr=’а’;
int result=str.lastIndexOf(chr); // result=20 (нумерация символов // начинается с нуля)
String str_1=”ша”;
result=str.lastIndexOf(str_1); // result=19
если в исходной строке имеются ESC-последовательности (\n) , то каждая из них считаетсяоднимсимволом;
выделениеподстроки из исходной строки:
String str=”Мы программируем на Java”;
String s=str.subString(3, 16); // s=программируем
задается индекс начальногосимвола (3) и индекс символа, который ужене будет входитьв подстроку (16),
заменаодного символа в строке другим:
String str=”Мы программируем на Java”;
String s=str.replace(‘ ‘, ‘_’); // заменяем все пробелы // на символы подчеркивания
заменаодной подстроки на другую:
String str=”Наша Маша шагает в шапке”;
String s=str.replaceAll(“ша”, “ся”); // заменяем все вхождения // “ша” на “ся”
если заменяемая подстрока не найдена, то возвращается ссылка на исходную строку; регистр букв при заменеучитывается,
String str=”Наша Маша шагает в шапке”;
String s=str.replaceFirst(“ша”, “ся”); // заменяем первое вхождение // “ша” на “ся”
удалениеначальных и конечных пробелов в строке:
String str=” Мы программируем на Java ”;
String s=str.trim(); // строка s без начальных // и конечных пробелов
переводвсех букв в строке внижнийрегистр (строчныебуквы):
String str=”Маша и Даша”;
String s=str.toLowerCase(); // s=”маша и даша”
переводвсех букв в строке вверхнийрегистр (прописныебуквы):
String str=”Маша и Даша”;
String s=str.toUpperCase(); // s=”МАША И ДАША”
разбиение строки на подстроки (создание массива подстрок):
String str=”Маша и Даша”;
String massiv[]s=str.split(“ “);
создается массив строк, элементы которого – это подстроки (слова), разделенные символами, указанными в качестве аргумента метода (в данном случае – пробелом):
massiv[0]=”Маша”;
massiv[1]=”и”;
massiv[2]=”Даша”;
при этом сами разделители в подстроки не входят,
поиск совпадения начала двух строк:
String str=”Берегите природу – мать вашу”;
String val=”Берег”;
boolean result=str.startsWith(val); // result=true
в этом случае строка strначинается с символов строкиval,
поиск совпадения окончаний двух строк:
String str=”Берегите природу – мать вашу”;
String val=”шу”;
boolean result=str.endsWith(val); // result=true
в этом случае строка strзаканчивается символами строкиval.
Допускается сложение строк с числовыми величинами:
String str = 1 + 2 + 3; // str=”6”
Сначала выполняется арифметическоесложение, а затем результат преобразуетсяв строку.
При программировании этой операции нужно быть очень внимательным:
String str=”Сумма=” + 1 + 2 + 3; // str= “сумма=123”
В этом случае сначала производится сложение двух строк “Сумма=” +1 , причем второй операнд автоматически преобразуется в строку. Таким же образом в строку добавляются третий и четвертый операнды.
String str=1 + 2 + “ не равно ” 1 + 2; // str=”3 не равно 12”