- Задача о високосном годе (см. python)
- Задача о котах (см. python)
- Задача о квадратном уравнении (см. python)
- Дано число, проверить его на простоту.
- можете просто перебрать делители числа \(n\) от 2 до \(n - 1\)
- или можете оптимизировать, перебирая только до квадратного корня
- Сайт codingbat.com. Зарегистрируйтесь на нем и решите по две задачи из следующих разделов Java: Warmup, String, Array, Logic. Решайте в любом порядке, и решайте все степени трудности, от 1 до 3.
- Массивы. Реализуйте указанные функции:
- Дано
n
, верните массив из первых n четных чисел: 2 4 6 8 … 2n - Дан массив, функция проверяет, есть ли в массиве одинаковые элементы:
boolean hasSimilar(int[] a)
- Дан массив, верните среднее значение всех элементов массива. (т.е. сумму элементов, деленную на количество элементов)
- Дан массив, верните дисперсию всех элементов массива. (это среднее значение элементов массива, возведенных в квадрат, минус среднее значение элементов массива, возведенное в квадрат)
- Остортируйте массив по убыванию:
private static int[] sortReverse(int[] a)
. Используйте для этогоArrays.sort()
с одним аргументом. Содержимое исходного массива меняться не должно, нужно вернуть новый отсортированный массив. Пример:int[] x = {20, 10, 30}; int[] y = sortReverse(x); System.out.println(Arrays.toString(x)); // печатает 20 10 30 System.out.println(Arrays.toString(y)); // печатает 30 20 10
- Дано
- Чтение и запись в файлы
- Дан файл. Прочитайте из него все целые числа и выведите на экран их сумму.
- Измените метод так, чтобы он игнорировал все слова, которые не являются целыми числами. (используйте
hasNextInt()
, не используйтеscanner.useDelimiter()
).
- Измените метод так, чтобы он игнорировал все слова, которые не являются целыми числами. (используйте
- Дан массив строк lines и имя файла. Запишите в файл заданные строки построчно. Не забудьте, что есть цикл “for each”.
-
Даны два файла. Прочитайте из первого файла текст и перепишите его во второй файл, исправив ошибки в регистрах букв Например, если исходный текст был:
какой-то Текст с неправильными Регистрами букв! втОРОе предложение Этого текста.
то должно получиться:
Какой-то текст с неправильными регистрами букв! Второе предложение этого текста.
Вы должны читать исходный файл по словам, разделенными пробельными символами, следить за последним символом очередного слова. Если это символ конца предложения (точка, восклицательный знак, вопросительный знак), нужно сделать так, чтобы следующее слово начиналось с заглавной буквы. Иначе следующее слово должно начинаться со строчной буквы. Заглавные буквы внутри слов нужно изменить на строчные.
- Дан файл. Прочитайте из него все целые числа и выведите на экран их сумму.
- Двумерные массивы. Заставьте следующий код работать:
char[][] c = createTable(20, '.'); printTable(c); System.out.println("============ Заполним строки: =========="); fillFirstAndLastLines(c, '#'); printTable(c); System.out.println("============ Заполним столбцы: ========="); fillFirstAndLastColumns(c, '#'); printTable(c);
createTable
возвращает массив char 20 на 20, все символы в массиве должны быть ‘.’printTable
печатает массив на экран. При этом выводите символы подряд, без запятых. Можете вывести пробелы между символами, так получается более красиво.fillFirstAndLastLines
Воспользуйтесь Arrays.fill(), чтобы заполнить первую и последнюю строки массива символами ‘#’.fillFirstAndLastColumns
Заполните первый и последний столбец массива символами ‘#’.
- Регулярные выражения.
- Дана строка, проверьте, что в ней содержится корректный email адрес. Будем считать, что корректный email состоит из имени пользователя (несколько латинских букв, точек, подчеркиваний, минусов), далее следует символ @, далее идет домен (тоже несколько латинских букв, точек, подчеркиваний, минусов), в конце должна быть точка и от двух до четырех латинских букв. Т.е. конец должен выглядеть как .com, .ru и т.п. Помните, что обычная точка означает любой символ, и ее может понадобиться экранировать. Используйте метод
matches()
класса String- Необязательное задание. Используйте регулярное выражение для email по ссылке https://gist.githubusercontent.com/iposov/6867dd66e129c3b5feb8/raw/a6f6655fa9d4bc70d522f5fd47d928bded37db27/email-regex.txt
- Дана строка с текстом на русском языке, в которой автор неправильно расставил пробелы перед запятыми. Например,
Это строка , у которой зачем-то написаны два пробела перед запятой
. Нужно найти все пробельные символы перед запятыми и удалить их. Должно получитьсяЭто строка, у которой зачем-то написаны два пробела перед запятой
. Используйте методreplaceAll()
класса String. - Дана строка. Найдите в ней все слова, написанные через дефис и поменяйте две половинки этих слов местами. Например, строка “Какая-то сине-зеленовая трава” должна превратиться в “то-Какая зеленовая-сине трава”. Используйте метод
replaceAll
класса String и$
для ссылки на группы. -
Дана строка. Посчитайте, сколько раз в ней встречаются символы “кот”, в произвольном регистре. Т.е. Кот и КОТ тоже надо считать. Используйте
Matcher
с методомfind()
. При создании регулярного выражения с помощью классаPattern
установите режимыPattern.UNICODE_CASE
иPattern.CASE_INSENSITIVE
.- Необязательное задание. А если надо искать слово “кот”, т.е. не считать, например, слово “который”? Попробуйте два способа указать, что “кот” должно быть частью другого слова. 1) найдите на странице с лекцией ссылку на все возможности регулярных выражений в Java, и там найдите, как указать word boundaries 2) используйте конструкции наподобие (\s|$) - это означает либо пробельный символ, либо конец строки.
- Дана строка, проверьте, что в ней содержится корректный email адрес. Будем считать, что корректный email состоит из имени пользователя (несколько латинских букв, точек, подчеркиваний, минусов), далее следует символ @, далее идет домен (тоже несколько латинских букв, точек, подчеркиваний, минусов), в конце должна быть точка и от двух до четырех латинских букв. Т.е. конец должен выглядеть как .com, .ru и т.п. Помните, что обычная точка означает любой символ, и ее может понадобиться экранировать. Используйте метод