Skip to content

📙 Краткая лаконичная информация по самым важным разделам Java, Spring, Hibernate для успешной подготовки к техническим собеседованиям.

Notifications You must be signed in to change notification settings

CreativeWex/JavaLearning

Repository files navigation

Содержание


Классы | ООП


Коллекции | Структуры данных


Базы данных | JDBC API | Jdbc Template


Архитектурные паттерны | Принципы проектирования


Spring Core


Spring MVC


REST | HTTP


Hibernate | Spring Data JPA


Docker | Docker Compose


Миграция БД | FlyWay




Отдельные темы

Класс File

Позволяет получить информацию о файле: права доступа, время и дата создания, путь к каталогу. А также осуществлять навигацию по иерархиям подкаталогов.

Если класс представляет каталог, то его метод list() возвращает массив строк с именами всех файлов.

Констукторы

  • File(String path) - указывается путь к файлу без указания имени файла
  • File(String dirPath, Sring name) - указывается путь к файлу и имя файла
  • File(URI uri) - указывается объекта URI, описывающий файл

Методы

  • getAbsolutePath() - абсолютный путь файла, начиная с корня системы. В Android корневым элементом является символ слеша (/);
  • canRead() - доступно для чтения;
  • canWrite() - доступно для записи;
  • exists() - файл существует или нет;
  • getName() - возвращает имя файла;
  • getParent() - возвращает имя родительского каталога;
  • getPath() - путь;
  • lastModified() - дата последнего изменения;
  • isFile() - объект является файлом, а не каталогом;
  • isDirectory - объект является каталогом;
  • isAbsolute() - возвращает true, если файл имеет абсолютный путь;
  • renameTo(File newPath) - переименовывает файл. В параметре указывается имя нового имени файла. Если переименование прошло неудачно, то возвращается false;
  • delete() - удаляет файл. Также можно удалить пустой каталог;

Класс Random

Методы

// Конуструкторы
Random()
Random(long seed) // начальное число

// Методы
synchronized void setSeeD(long seed) // устанавливает начальное значение
long nextLong() // возвращает следующее случайное значение типа long
int nextInt(int n) // возвращает следующее случайное значение типа int в диапазоне от 0 до n

// Генерация в определенном интервале
int i = random.nextInt(max - min + 1) 

RegEx - Regular Expressions - Регулярные Выражения

Регулярные выражения — это механизм для поиска и замены текста путем проверки строк на соответствие заданному шаблону.

Регулярные выражения регистрозависимые, находят первое вхождение.


Поиск любого символа

Точка . заменяет один любой символ. Пример: А.я найдет Ася, Аня, А9я, А&я. Для того, чтобы найти именно точку, ее надо экранировать \. Пример: \.txt найдет file.txt, notes.txt, aw&&d1aw23d.txt


Поиск по набору символов

Квадратные скобки [диапазон значений] отвечают за символ из допустимого значения

  • [нл] — только «н» и «л»

  • [а-я] — все русские буквы в нижнем регистре от «а» до «я» (кроме «ё»)

  • [А-Я] — все заглавные русские буквы

  • [А-Яа-яЁё] — все русские буквы

  • [a-z] — латиница мелким шрифтом

  • [a-zA-Z] — все английские буквы

  • [0-9] — любая цифра

  • [В-Ю] — буквы от «В» до «Ю» (да, диапазон — это не только от А до Я)

  • [А-ГО-Р] — буквы от «А» до «Г» и от «О» до «Р»

При перечислении возможных вариантов, разделители между ними не ставятся!

  • [абв] — только «а», «б» или «в»

  • [а б в] — «а», «б», «в», или пробел (что может привести к нежелательному результату)

  • [а, б, в] — «а», «б», «в», пробел или запятая

[1-31] диапазон от 1 до 3 и число 1. Дефис видет только по одному символу с каждой стороны

Знак ^ внутри [] означает исключение

  • [^0-9] — любой символ, кроме цифр

  • [^ёЁ] — любой символ, кроме буквы «ё»

  • [^а-в8] — любой символ, кроме букв «а», «б», «в» и цифры 8

Пример: найти все txt файлы, кроме разбитых на кусочки — заканчивающихся на цифру: [^0-9]\.txt

Для поиска скобок используется экранирование

Regex: fruits\[[0-9]\]

Найдет:

fruits[0] = “апельсин”;

fruits[1] = “яблоко”;

fruits[9] = “лимон”;

Не найдет:

fruits[10] = “банан”;

fruits[325] = “ абрикос ”;

Перечисление вариантов

Символ | используется для перечисления слов

Regex: Оля|Олечка|Котик

Найдет:

Оля

Олечка

Котик

Не найдет:

Оленька

Котенка

Пример: Регулярное выражение для парсинга даты (день.месяц)

0[1-9]|[12][0-9]|3[01]\.0[1-9]|1[0-2]

Если перебор идет в середине слова, он берется в круглые скобки ()

Regex: А(нн|лл|лин|нтонин)а

Найдет:

Анна

Алла

Алина

Антонина

[] Используется для указания допустимых значений дл одного символа, | для нескольких символов или целого слова


Метасимволы

Символ Пояснение
\d Цифровой символ
\D Нецифровой символ
\s Пробельный символ
\w Буквенный или цифровой символ или знак подчёркивания
\W Любой символ, кроме буквенного или цифрового символа или знака подчёркивания
Пробел Любой символ

Класс символов - еще один способ задания диапазонов

Класс символов Пояснение
[[:alnum:]] Буквы или цифры: [а-яА-ЯёЁa-zA-Z0-9]
[[:alpha:]] Только буквы: [а-яА-ЯёЁa-zA-Z]
[[:digit:]] Только цифры: [0-9]
[[:graph:]] Только отображаемые символы (пробелы, служебные знаки и т. д. не учитываются)
[[:print:]] Отображаемые символы и пробелы
[[:space:]] Пробельные символы [ \f\n\r\t\v]
[[:punct:]] Знаки пунктуации: ! " # $ % & ' ( ) * + , \ -. / : ; < = > ? @ [ ] ^ _ ` {
[[:word:]] Буквенный или цифровой символ или знак подчёркивания: [а-яА-ЯёЁa-zA-Z0-9_]

Квантификаторы (количество повторений)

Квантификатор Число повторений
? Ноль или одно
* Ноль или более
+ Один или более
Regex: \w+@\w+\.\w+

Найдет:

test@mail.ru

olga31@gmail.com

pupsik_99_and_slonik_33_and_mikky_87_and_kotik_28@yandex.megatron

Чтобы указать конкретно количество повторений, их надо записать внутри фигурных скобок

Квантификатор Число повторений
{n} Ровно n раз
{m,n} От m до n включительно
{m,} Не менее m
{,n} Не более n

Квантификатор применяется к последнему символу!

Regex: data{2}

Найдет: dataa

Не найдет: datadata

Или группе символов, если они взяты в круглые скобки:

Regex: (data){2}

Найдет: datadata

Не найдет: dataa

Позиция внутри строки (Поиск конкретного слова)

Символ Значение
\b Граница слова
\B Не граница слова
^ Начало текста (строки)
$ Конец текста (строки)

\b обозначает границу слова

Regex: \bарка\b

Найдет:

арка

Не найдет:

чарка

аркан

баварка

знахарка

Если использовать метасимвол \B, он найдем нам НЕ-границу слова:

Regex: \Bакр\B

Найдет:

закройка

Не найдет:

акр

акрил

Если мы хотим найти конкретную фразу, а не слово, то используем следующие спецсимволы:

^ — начало текста (строки)

$ — конец текста (строки)

Если использовать их, мы будем уверены, что в наш текст не закралось ничего лишнего:

Regex: ^Я нашел!$

Найдет:

Я нашел!

Не найдет:

Смотри! Я нашел!

Я нашел! Посмотри!

Источник: https://habr.com/ru/post/545150/

About

📙 Краткая лаконичная информация по самым важным разделам Java, Spring, Hibernate для успешной подготовки к техническим собеседованиям.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages