Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Родин Отчет 2.doc
Скачиваний:
11
Добавлен:
09.02.2015
Размер:
186.88 Кб
Скачать

Министерство образования и науки Российской Федерации

Калужский филиал федерального государственного бюджетного образовательного учреждения высшего профессионального образования

«Московский государственный технический университет имени Н.Э. Баумана»

(КФ МГТУ им. Н.Э. Баумана)

ФАКУЛЬТЕТ

"Фундаментальные науки"

КАФЕДРА

"Программное обеспечение ЭВМ, информационные технологии и прикладная математика"

О Т Ч Е Т

Лабораторная работа №2

ДИСЦИПЛИНА:

"Основы научных исследований"

ТЕМА:

"Основные конструкции языка Java"

Выполнил: студент гр. ИТД.Б-61

Родин С.Е. ______________________

Проверил:

Димитрюк О.В.__________________

Дата сдачи (защиты) лабораторной работы:

Результаты сдачи (защиты):

Количество рейтинговых баллов

Оценка

Калуга, 2014 г.

Цель

Изучить основы работы с массивами, строками, регулярными выражениями,

файлами и коллекциями, механизмы обработки исключений в языке Java.

Ознакомиться с описанием классов, их полей и методов.

Задание

Вариант 2

1. Необходимо реализовать консольное приложение, позволяющее манипулировать строкой, разбив ее на элементы путем использования регулярных выражений.

Определить, является ли строка правильным URL адресом. В данной задаче правильным URL считаются адреса http и https, явное указание протокола также может отсутствовать. Учитываются только адреса, состоящие из символов (не учитывать IP адреса).

2. Ввести число, занести его цифры в стек. Вывести в число, у которого цифры идут в обратном порядке и записать результат в заданный пользователем файл.

3. Создать класс с указанной структурой (все поля должны быть закрытыми). Определить конструктор, открытые методы set(), get() для каждого поля и метод show(). Определить какой-либо дополнительный метод класса. Создать массив из n объектов данного класса. Вывести данные, удовлетворяющие заданному критерию.

АБИТУРИЕНТ: фамилия, имя, отчество, адрес, телефон, оценки.

Вывести список абитуриентов с оценками выше средней. Предусмотреть как краткий вариант вывода информации (фамилия и.о.), так и полный.

Теоретические сведения

Регулярные выражения (англ. regular expressions) — формальный язык поиска и осуществления манипуляций с подстроками в тексте, основанный на использовании метасимволов. По сути это строка-образец (англ. pattern, по-русски её часто называют «шаблоном», «маской»), состоящая из символов и метасимволов и задающая правило поиска.

Основой синтаксиса регулярных выражений является тот факт, что некоторые символы встречающиеся в строке рассматриваются не как обычные символы, а как имеющие специальное значение (т.н. метасимволы). Именно это решение позволяет работать всему механизму регулярных выражений. Каждый метасимвол имеет свою собственную роль.

^ - (крышка, цирркумфлекс) начало проверяемой строки

$ - (доллар) конец проверяемой строки

. - (точка) представляет собой сокращенную форму записи для символьного класса, совпадающего с любым символом

| - означает «или». Подвыражения, объединенные этим способом, называются альтернативами (alternatives)

? - (знак вопроса) означает, что предшествующий ему символ является необязательным

+ - обозначает «один или несколько экземпляров непосредственно предшествующего элемента

* – любое количество экземпляров элемента (в том числе и нулевое)

\\d – цифровой символ

\\D – не цифровой символ

\\s – пробельный символ

\\S – не пробельный символ

\\w – буквенный или цифровой символ или знак подчёркивания

\\W – любой символ, кроме буквенного или цифрового символа или знака подчёркивания

Регулярные выражения предоставляют инструменты позволяющие указать сколько раз может повторятся один или несколько символов. С некоторыми мы уже встречались:

+ - Одно или более

* - Ноль или более

? - Ноль или одно

{n} - Ровно n раз

{m,n} - От m до n включительно

{m,} - Не менее m

{,n} - Не более n

Class Pattern - Регулярное выражение, которое Вы записываете в строке, должно сначала быть скомпилированным в объект данного класса. После компиляции объект этого класса может быть использован для создания объекта Matcher.

В классе Pattern объявлены следующие методы:

Pattern compile(String regex) – возвращает Pattern, который соответствует regex.

Matcher matcher(CharSequence input) – возвращает Matcher, с помощью которого можно находить соответствия в строке input.

Class Matcher

Объект Matcher анализирует строку, начиная с 0, и ищет соответствие шаблону.

После завершения этого процесса Matcher содержит много информации о найденных (или не найденных) соответствиях в нашей входной строке. Мы можем получить эту информацию, вызывая различные методы нашего объекта Matcher:

boolean matches() просто указывает, соответствует ли вся входная последовательность шаблону.

int start() указывает значение индекса в строке, где начинается соответствующая шаблону строка.

int end() указывает значение индекса в строке, где заканчивается соответствующая шаблону строка плюс единица.

String group() - возвращает найденную строку

 String group(int group) - если у Вас в регулярном выражении были группы, то можно вывести только кусочек строки соответствующей определенной группе.

Для работы с файловой системой у Java имеется специальный класс File, который располагается в java.io пакете.

Результаты работы программы

Задание 1

Enter string:

http:/ex.com

String is right URL.

Enter string:

:/5368.com

String isn't right URL.

Задание 2

Enter number:

12345

Enter file name:

f1

f1:

54321

Задание 3

Enter count of enrollee:

3

New enrollee:

Enter second name:

enrollee1

Enter first name:

en1

Enter middle name:

e1

Enter address:

gfddh

Enter phone number:

432346

Enter 1 mark:

5

Enter 2 mark:

4

Enter 3 mark:

4

New enrollee:

Enter second name:

enrolle2

Enter first name:

en2

Enter middle name:

e2

Enter address:

hfkhfk

Enter phone number:

567686

Enter 1 mark:

4

Enter 2 mark:

4

Enter 3 mark:

3

New enrollee:

Enter second name:

enrollee3

Enter first name:

en3

Enter middle name:

e3

Enter address:

tfrukgljgkj

Enter phone number:

9870987

Enter 1 mark:

5

Enter 2 mark:

4

Enter 3 mark:

3

Enrollee enrollee1 en1 e1

Average mark: 4.333333333333333

Enrollee enrolle2 en2 e2

Average mark: 3.6666666666666665

Enrollee enrollee3 en3 e3

Average mark: 4.0

Листинги

Задание 1

import java.util.Scanner;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

/**

* Created by kateairmac on 11.04.14.

*/

public class Lab2_ex1 {

private static String GetString(String message){

System.out.println(message);

Scanner scanner = new Scanner(System.in);

String string = scanner.nextLine();

return string;

}

/** необязательный протокол (http:// или https://),

* затем последовательность не цифр (домены уровня > 1),

* потом домен нулевого уровня (от 2 до 6 букв и точек)

* файловая структура — набор слов из букв, цифр, дефисов, подчёркиваний и точек со слэшем в конце или без.

*/

private static boolean CheckString(String string) {

Pattern patternURL = Pattern.compile("(https?:\\/\\/)?([\\D\\.]+)\\.([a-z]{2,6}\\.?)(\\/[\\w\\.]*)*\\/?");

Matcher matcherURL = patternURL.matcher(string);

return matcherURL.matches();

}

public static void main(String[] args) {

String string = GetString("Enter string: ");

if(CheckString(string)){

System.out.println("String is right URL.");

}

else {

System.out.println("String isn't right URL.");

}

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]