java / lab2
.docЛабораторная работа №2.
Регулярные выражения
Цель работы: 1) научиться составлять регулярные выражения. 2) научиться обрабатывать текстовые файлы на языке Java с помощью регулярных выражений.
Продолжительность работы: 4 часа.
-
Теоретические сведения
Теоретические сведения и подробное описание всех лексем регулярных выражений можно найти в материалах лекции.
-
Обработка текстовых файлов
Простейшая программа обработки файлов с помощью регулярных выражений приведена ниже. Данная программа подсчитывает количество слов в файле
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class regex {
public static void main(String[] args)
{
if (args.length < 1)
{
System.out.println("No file specifed");
System.exit(1);
}
int count = 0;
Pattern pattern = Pattern.compile("\\w+");
BufferedReader in;
try
{
in = new BufferedReader(new FileReader(args[0]));
String s;
while ((s = in.readLine()) != null)
{
Matcher matcher =
pattern.matcher(s);
while (matcher.find())
count++;
}
} catch (IOException e)
{
e.printStackTrace();
}
System.out.println("Words count: " + count);
}
}
-
Задания
В качестве исходных файлов можно взять любой файл. В первом задании выводить найденные элементы на экран. Во втором задании результат сохранить в отдельном файле.
-
Вариант 1
-
Задание 1. Поиск текста
-
Создать программу, подсчитывающая в файле:
-
количество слов длиннее 3 символов
-
количество слов, закачивающихся на гласную
-
количество слов в которых встречаются две и более гласные подряд.
-
Количество слов, в котором встречаются две одинаковые подряд буквы.
-
Задание 2. Замена текста
Создать программу, которая производит следующие изменения в файле:
-
заменяет несколько подряд идущих пробелов одним
-
меняет местами стоящие рядом буквы в слове (не трогая крайние буквы). Например, слово «Java» будет изменено на «Jvaa», «Пример» на «Пиремр», «буква» на «бкува»
-
Вариант 2
-
Задание 1. Поиск текста
-
Создать программу, подсчитывающая в файле:
-
количество слов, короче 4-х символов
-
количество слов, заканчивающихся на согласную
-
количество слов в которых встречаются две и более согласные подряд.
-
Количество слов, в которой первая и последняя буквы одинаковы.
-
Задание 2. Замена текста
Создать программу, которая производит следующие изменения в файле:
-
заменяет несколько подряд идущих переводов строк одним
-
меняет местами первую и последнюю буквы, не трогая буквы в середине слова. Например, слово «Java» будет изменено на «aavJ», «Пример» на «рримеП», «буква» на «ауквб»
-
Вариант 3.
-
Задание 1. Поиск текста
-
Создать программу, подсчитывающая в файле:
-
количество числовых констант длиннее 3 символов
-
количество числовых констант со значением больше «250»
-
количество числовых констант, делимые без остатка на 100
-
количество числовых констант, в котором последовательно встречаются две одинаковые цифры
-
Задание 2. Замена текста
-
заменяет один или несколько идущих подряд пробельных символа одним переводом строк
-
округляет числа с плавающей точкой в меньшую сторону (отбрасывает дробную часть). Например: «100,35» на «100», «123» на «123»
-
Вариант 4.
-
Задание 1. Поиск текста
-
Создать программу, подсчитывающая в файле:
-
количество числовых констант короче 4 символов
-
количество числовых констант со значением меньше «450»
-
количество числовых констант, неделимые без остатка на 100
-
количество числовых констант, в котором первая и последняя цифры одинаковые.
-
Задание 2. Замена текста
-
заменяет один или несколько идущих подряд пробелов символом табуляции
-
умножает числа сплавающей точкой на 10. Например, «123,45» на «1234,5», «123» на «1230», «123,4» на «1234».