
Лабораторная работа №5
Тема: «Работа со строками в Java»
По курсу: «Введение в программирование на Java»
Цель работы: изучить особенности работы со строковым типом данных на Java
Задание на лабораторную работу:
1. Разработать в программе следующие классы:
- класс, содержащий функцию main;
- класс для методов работы со строками;
- класс для методов тестирования, производный от класса основной программы.
2. Создать объекты классов программы и тестирования в функции main(). Все классы описать внутри отдельного пакета. Тесты должны запускаться вместе в тестами остальных лабораторных работ.
3. Выполнить и протестировать программу.
Содержание отчета:
1. Титульный лист.
2. Задание.
3. Ручной расчёт результата работы программы для всех тестов.
4. Распечатка программы.
5. Экранные формы.
Варианты заданий:
-
Задана строка, содержащая символы, среди которых более одного раза встречаются символы x, y. Определить индекс n-ой буквы x, которая встречается после, m-ой буквы y.
-
Задана строка символов определенной длины. Определить новую сроку, полученную после удлинения исходной на каждый встречаемый по одному разу символ и переворачивания. Пример: a=”abaс” rez = “ccabba”.
-
Задана строка a. Преобразовать каждое слово в строке так, чтобы все предыдущие вхождения его последней буквы были заменены на заданный символ b. Пример
a=”минимум”,b=”.” => rez = “.ини.ум”.
-
Задана строка, содержащая пробелы. Определить новую сроку, полученную после удаления всех ведущих и замыкающих пробелов, а также лишних пробелов между словами.
-
Задана строка, содержащая полное имя файла, т.е. имя диска список каталогов (путь), имя и расширение. Выделить из этой строки имя файла (без расширения).
-
Задана строка, содержащая полное имя файла, т.е. имя диска список каталогов (путь), имя и расширение. Выделить из этой строки расширение файла (без предшествующей точки).
-
Задана строка a. Преобразовать каждое слово в строке так, чтобы каждые последующие вхождения его первой буквы были заменены на заданный символ b. Пример
a=”минимум”,b=”.” => rez = “мини.у.”.
-
Заданы две строки a,b. Соединить исходные строки с записью длин. Пример: a=”abba”,b=”the” => rez = “abba4the3”.
-
Задана строка символов x. Получить на выходе новую строку, полученную путем переворачивания и добавления в начало реальной длины, а в конец зарезервированной длины. Пример: x=”Test” => rez = “4tseT16”.
-
Задана строка x. Получить новую строку, выбросив из исходной все вхождения символа y, используя функцию toCharArray.
Пример: x=”Tests” , y=”s” => rez = “Tet”.
-
Задана строка x. Получить новую строку, добавив после каждого символа y заданный символ z. Пример: x=”Tests” , y=”s”, z=“f” => rez = “Tesftsf”.
-
Задана строка x. Получить новую строку, перевернув каждое слово в исходной строке. Пример: x=”Test is best” => rez = “tseT si tseb”.
-
Создать метод для преобразования строк с десятичными числами, при котором после каждой третьей цифры справа ставится запятая. Например, для исходной строки “1542729” метод должен возвращать строку ”1,542,729”.
-
Изменить метод из предыдущего варианта так, чтобы при его вызове можно было указать символ-разделитель и количество цифр между разделителями.
-
Написать функцию, которая получает строку, составляет новую строку, удалив из исходной все элементы, не являющимися цифрами.
-
Дана строка, содержащая до 5 слов, в каждом из которых до 5 строчных латинских букв; между соседними словами — запятая, за последним словом — точка. Сформировать строку-результат, содержащую те слова, перед которыми в последовательности находятся только меньшие (по алфавиту) слова, а за ними — только большие.
-
Дана строка, в которой находятся слова, разделенных пробелом. Упорядочить слова по алфавиту.
-
Дана строка, заканчивающаяся точкой. Подсчитать, сколько в ней слов.
-
В данной строке найти количество слов, начинающихся с буквы s.
-
Дана строка, содержащая текст. Найти самое длинное слово.
-
Дана строка, заканчивающаяся точкой. Подсчитать в ней количество вхождений букв r.
-
Дана строка. Преобразовать ее, удалив каждый символ x и повторив каждый символ, отличный от x.
-
Дана строка. Подсчитать самую длинную последовательность подряд идущих букв a.
-
Определить, правильно ли расставлены скобки в арифметическом выражении.
-
Упорядочите слова заданного предложения, по возрастанию количества букв. Затем слова с одинаковым количеством букв упорядочите по алфавиту (лексикографически).
-
Напишите программу, "угадывающую" слово из заранее заданного списка по первым нескольким буквам. Выдайте сообщение "неоднозначно", если есть несколько похожих слов.
-
Составьте программу, укорачивающую слова исходной строки до заданной величины и помещающую результат в указанную строку. Пример:
x=”An article is a word that combines with a noun to indicate the type of reference.” , dl=4 =>
rez = “An arti is a word that comb with a noun to indi the type of refe.”.
-
Дана строка, состоящая из слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Найти количество слов, которые начинаются и заканчиваются одной и той же буквой.
-
Зашифруйте символьную строку, состоящую из букв латинского алфавита, по коду Цезаря (А и а заменяется на D и d соответственно, В и b на Е и е, С и с на F и f ... X и х на А и а, У и у на B и b, Z и z на С и с).
-
Дана строка. Получить выходную строку, содержащую сначала нечетные символы, затем четные символы исходной строки.