1. Обзор
В этом руководстве мы рассмотрим различные способы преобразования массива байтов в шестнадцатеричную строку
и наоборот.
Мы также поймем механизм преобразования и напишем нашу реализацию для достижения этой цели.
В этом уроке мы собираемся изучить шифр Цезаря, метод шифрования, который сдвигает буквы сообщения, чтобы создать другое, менее читаемое.
Прежде всего, мы рассмотрим метод шифрования и посмотрим, как его реализовать на Java.
Затем мы увидим, как расшифровать зашифрованное сообщение, если мы знаем смещение, используемое для его шифрования.
И, наконец, мы узнаем, как взломать такой шифр и, таким образом, извлечь исходное сообщение из зашифрованного, не зная используемого смещения.
При обработке символов из строки
мы можем захотеть классифицировать их в зависимости от того, принадлежат ли они к определенной группе. Например, символы английского алфавита — это либо гласные, либо согласные.
В этом уроке мы рассмотрим несколько методов проверки того, является ли символ гласным. Мы могли бы легко распространить эти методы на другие группы символов.
indexOf
В этом руководстве мы увидим различные способы проверки того, отсортирован ли список в Java .
Итеративный подход — это простой и интуитивно понятный способ проверки отсортированного списка. В этом подходе мы будем повторять список и сравнивать соседние элементы. Если какой-либо из двух соседних элементов не отсортирован, мы можем сказать, что список не отсортирован.
Список может быть отсортирован в естественном порядке или в пользовательском порядке. Мы рассмотрим оба этих случая, используя интерфейсы Comparable
и Comparator .
В этом уроке мы узнаем, как решить несколько распространенных комбинаторных задач. В повседневной работе они, скорее всего, не очень полезны; однако они интересны с алгоритмической точки зрения. Мы можем найти их удобными для целей тестирования.
Имейте в виду, что существует множество различных подходов к решению этих проблем. Мы постарались сделать представленные решения простыми для понимания.
Во-первых, давайте начнем с перестановок. Перестановка — это перестановка последовательности таким образом, чтобы она имела другой порядок.
Древние римляне разработали собственную систему счисления, называемую римскими цифрами. Система использует буквы с разными значениями для представления чисел. Римские цифры до сих пор используются в некоторых второстепенных приложениях.
В этом уроке мы реализуем простые преобразователи, которые будут преобразовывать числа из одной системы в другую.
В римской системе у нас есть 7 символов, которые представляют числа :
Регулярные выражения — это мощный инструмент для сопоставления различных типов шаблонов при правильном использовании.
В этой статье мы будем использовать пакет java.util.regex
, чтобы определить, содержит ли данная строка
допустимую дату или нет.
Введение в регулярные выражения см. в нашем Руководстве по API регулярных выражений Java .
В этом руководстве мы рассмотрим поиск в глубину в Java.
Поиск в глубину (DFS) — это алгоритм обхода, используемый как для структур данных Tree, так и для Graph . Поиск в глубину углубляется в каждую ветвь, прежде чем переходить к изучению другой ветви .
В следующих разделах мы сначала рассмотрим реализацию дерева, а затем графа.
Чтобы узнать, как реализовать эти структуры в Java, ознакомьтесь с нашими предыдущими руководствами по двоичному дереву и графику .
В этой короткой статье мы рассмотрим различные способы получения доменного имени из заданного URL-адреса в Java.
Проще говоря, доменное имя представляет собой строку, указывающую на IP-адрес. Он является частью унифицированного указателя ресурсов (URL). Используя доменное имя, пользователи могут получить доступ к определенному веб-сайту через клиентское программное обеспечение.
Доменное имя обычно состоит из двух или трех частей, разделенных точкой.
В этом руководстве мы рассмотрим конечные автоматы и то, как их можно реализовать в Java с помощью Enums.
Мы также объясним преимущества этой реализации по сравнению с использованием интерфейса и конкретного класса для каждого состояния.
Java Enum — это особый тип класса, определяющий список констант. Это позволяет реализовать типобезопасную реализацию и сделать код более читаемым .