- •Часть 1
- •Часть 1
- •Введение
- •Лабораторная работа № 1 разработка схем алгоритмов
- •Краткая теория Этапы решения задач на эвм
- •Определение алгоритма и способы его описания
- •Правила оформления схем алгоритмов
- •Типы алгоритмов
- •Задания
- •Построение схем алгоритмов с помощью текстового редактора word
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 2 работа в среде netbeans. Создание простейших программ с линейным алгоритмом
- •Краткая теория Установка ide NetBeans
- •Общие правила создания приложений
- •Работа с проектом NetBeans
- •Пример создания простейшего приложения
- •Общие правила построения класса
- •Типы данных
- •Объявление переменных
- •Оператор присваивания
- •Приведение типов
- •Организация ввода данных
- •Организация вывода данных
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 3 разработка простейших приложений на базе разветвляющихся алгоритмов
- •Краткая теория Средства переименования в среде NetBeans
- •Отладка кода в среде NetBeans
- •Условный оператор if-else
- •Условный оператор switch
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 4 разработка программ с циклами со счетчиком
- •Краткая теория Циклы со счетчиком
- •Особенности алгоритмов и программ с накапливанием
- •Методы класса Math
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 5 работа с итерационными циклами. Одномерные массивы
- •Краткая теория Итерационные циклы
- •Цикл while
- •Цикл do-while
- •Одномерные массивы
- •Подсчет суммы, количества и среднего значения в одномерных массивах
- •Нахождение минимума и максимума
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 6 алгоритмы сортировки и разбиения одномерных массивов
- •Краткая теория Сортировка одномерных массивов
- •Разбиение одномерных массивов
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 7 обработка двумерных массивов
- •Краткая теория Понятие многомерных массивов. Ввод и вывод матриц
- •Типовые алгоритмы обработки матриц
- •Алгоритмы обработки матриц в целом
- •Алгоритмы обработки матриц по строкам и столбцам
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 8 диагонали матрицы, умножение матриц
- •Краткая теория Обработка главной и побочной диагоналей матриц
- •Работа с диагоналями матриц выше и ниже главной/побочной
- •Умножение матриц
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 9 обработка строк класса string
- •Краткая теория Создание объектов класса String
- •Методы класса String
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 10 алгоритмы и программы обработки фрагментов строк класса string
- •Краткая теория Сравнение символов строк класса String
- •Типовые задачи обработки массивов строк (слов из текста)
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 11 разработка алгоритмов и программ с использованием классов StringBuffer/StringBuilder
- •Краткая теория Создание и обработка объектов классов stringbuffer и stringbuilder
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 12 разработка собственных методов
- •Краткая теория Общие правила создания методов класса
- •Описание методов класса
- •Вызов методов класса
- •Передача параметров
- •Содержание
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Библиографический список
- •Программирование на Java
- •443100, Г. Самара, ул. Молодогвардейская, 244. Главный корпус
- •443100, Г. Самара, ул. Молодогвардейская, 244. Корпус № 8
Содержание отчета
Готовится один отчет на бригаду в печатном виде для заданий, указанных в лабораторной работе. Он должен содержать следующие разделы:
титульный лист;
задание;
словесное описание алгоритма;
текст программы на языке Java.
Контрольные вопросы
1. Для каких матриц существует понятие главной и побочной диагоналей?
2. Как задаются и как изменяются индексы элементов главной диагонали?
3. Как задаются и как изменяются индексы элементов побочной диагонали?
4. Сколько циклов необходимо использовать при обработке главной (побочной) диагонали?
5. Сколько диагоналей, параллельных главной и побочной, может быть в матрице?
6. Как изменяются номера диагоналей, параллельных главной (побочной) и задаются их индексы?
7. Для каких матриц можно выполнить операцию умножения?
8. Как определяются значения элементов строки произведения двух матриц?
9. Каков общий алгоритм умножения матриц?
Лабораторная работа № 9 обработка строк класса string
Цель работы – получение навыков работы со строками класса String, знакомство с основными методами класса.
Источники: [3, с. 178-183], [4, с. 77-86].
Краткая теория Создание объектов класса String
Строка в языке Java – это не массив символов типа char, как в других языках программирования, а объект соответствующего класса. Основной класс Java для работы со строками – это String. Он определен в стандартной библиотеке языка.
Особенностью строки класса String является то, что после создания ее она не может быть изменена при помощи какого-либо метода класса, так как любое изменение приводит к созданию новой строки.
Основные конструкторы класса String:
– String() – создает пустую строку;
– String(String str) – создает строку, эквивалентную переданной;
– String(char s[]) – создает строку из переданного массива символов.
Создание объекта класса String производят обычным присваиванием литерала или с использованием оператора new и вызовом соответствующего конструктора класса, например:
String s1 = "Привет!";
String s2 = new String("Привет!");
Возможно создание строки путем ввода с клавиатуры:
Scanner sc = new Scanner(System.in, "cp1251");
System.out.print("Введите строку=> ");
String s = sc.nextLine();
Параметр "cp1251" объекта Scanner – это кодовая страница, обеспечивающая работу с кириллицей.
Методы класса String
Для реализации каких-либо действий над объектами классов Java используются методы. Методы, представляют собой именованный программный блок, построенный по определенным правилам и выполняющий решение некоторой самостоятельной подзадачи. Они являются неким аналогом процедур и функций в других языках программирования.
Вызов метода осуществляется следующим образом: записывается имя объекта и через точку имя метода. Для метода всегда ставятся в конце круглые скобки:
имяПеременной.имя_метода();
Пример записи метода перевода строки str в верхний регистр:
str.toUpperCase();
Пример кода с использованием метода для удаления пробелов в начале и конце строки и метода определения длины строки:
String s = " Привет! ";
System.out.println("Длина строки = "+s.length()); // 13 символов
s=s.trim(); // удаление пробелов
System.out.println(s); // выводится : "Привет!"
System.out.println("Длина строки = "+s.length()); // 7 символов
Класс String содержит достаточно большое количество стандартных методов для работы со строками, позволяющих произвести всевозможные преобразования. В табл. 9.1 представлены основные методы класса String.
Т
аблица
9.1
Название метода |
Тип возвра-щаемого значения |
Выполняемые действия |
Пример |
concat(String s) или “+”
|
String |
Слияние строк |
str3 = str1.concat("-" + str2); System.out.println("kol="+kol); |
equals(Object ob) и equalsIgnoreCase(String s) |
boolean |
Сравнение строк с учетом и без учета регистра соответственно |
if (str1.equals(str2) ){…}
if (s1.equalsIgnoreCase(s2)) {...} |
compareTo(String s) и compareToIgnoreCase(String s)
|
int |
Лексикографическое сравнение строк с учетом и без учета регистра. Метод возвращает значение нуль в случае, когда equals() возвращает значение true |
if (str1.compareTo(str2)>0){…}
if (s1.compareToIgnoreCase(str2)=0){ …} |
substring(int n, int m)
|
String |
Извлечение из строки подстроки длиной m-n, начиная с позиции n. Нумерация символов в строке начинается с нуля |
str=str.substring(2, 8); |
substring(int n)
|
String |
Извлечение из строки подстроки, начиная с позиции n |
String s=str.substring(4); |
length() |
int |
Определение длины строки |
n=str.length(); |
indexOf(char ch) indexOf(String str) |
int |
Определение позиции символа или подстроки в строке |
n=s.indexOf(‘x’); if(s.indexOf(" Иван ")>=0){…} |
lastIndexOf(char ch)
|
int |
Последнее вхождение символа или подстроки |
n1=s1.lastIndexOf(‘x’); n2=s2.lastIndexOf(“СамГТУ”); |
Окончание табл. 9.1
Название метода |
Тип возвра-щаемого значения |
Выполняемые действия |
Пример |
valueOf(значение)
|
static String |
Преобразование переменной базового типа к строке |
String str=valueOf(100); |
toUpperCase()/toLowerCase()
|
String |
Преобразование всех символов вызывающей строки в верхний/нижний регистр |
str1=str1.toUpperCase(); str=str.toLowerCase(); |
replace(char с1, char с2) или replace(String s1, String s2) |
String |
Замена в строке всех вхождений первого символа вторым символом |
str1 = str1.replace(‘X’, "Y"); str2 = str2.replace("чя", "ча"); |
trim() |
String |
Удаление всех пробелов в начале и конце строки |
str=str.trim(); |
isEmpty() |
boolean |
Проверяет, не пустая ли строка |
if (str.isEmpty()) return; |
charAt(int position)
|
char |
Возвращение символа из указанной позиции (нумерация с нуля) |
|
split(String regex)
split(String regex, int limit)
|
String[] |
Поиск вхождения в строку заданного регулярного выражения (разделителя) и деление исходной строки в соответствии с этим на массив строк |
String[] slova = str.split("-"); System.out.println("Слова :"); for (int i = 0; i < arr.length; i++) System.out.println("\t"+slova[i]); |
Далее приведен демонстрационный пример приложения с использованием ряда методов.
package str_proba;
public class Str_proba {
public static void main(String[] args) {
char s[] = { 'J', 'a', 'v', 'a' }; // массив символов
String str = new String(s); // str="Java" создана из массива символов
if (!str.isEmpty()) { // если строка не пустая
int dlina = str.length(); // dlina =4
str = str.toUpperCase(); // str="JAVA" перевод в заглавные буквы
String num = String.valueOf(8); // num="7" – перевод числа в строку
String stroka = str.concat("-" + num); // stroka ="JAVA-8" – объединение
char ch = str.charAt(2); // ch='V' – выделение третьего символа
i = str.lastIndexOf('A'); // i=3 (-1 если нет)
stroka = stroka.replace("8", "SE"); // num="JAVA-SE" –замена
str.substring(0, 4).toLowerCase(); // java – перевод в строчные буквы
str = stroka + "-8"; // str=”java-SE-8”
String[] arr = str.split("-"); // выделение массива
System.out.println("Слова из предложения:");
for (int j = 0; j < arr.length; j++)
System.out.println("\t"+arr[j]);
} else {
System.out.println("Строка пустая!");
}
