1. введение
Cactus -это библиотека объектно-ориентированных примитивных типов Java .
В этом уроке мы рассмотрим некоторые классы, доступные как часть этой библиотеки.
2. Кактусы
Репертуар библиотеки Кактусов довольно богат, начиная от манипуляций со строками и заканчивая структурами данных. Примитивные типы и соответствующие им методы, предлагаемые этой библиотекой, аналогичны тем, которые предоставляются другими библиотеками, такими как Guava и Apache Commons, но в большей степени ориентированы на принципы объектно-ориентированного проектирования .
2.1. Сравнение С Apache Commons
Библиотека Cactoos оснащена классами, которые обеспечивают ту же функциональность, что и статические методы, входящие в библиотеку Apache Commons.
Давайте рассмотрим некоторые из этих статических методов, которые являются частью пакета StringUtils , и их эквивалентные классы в Cactoo:
IsBlank | isBlank() |
Сниженный | строчные() |
Верхний | верхний регистр() |
Вращается | вращать() |
Поменявшееся Дело | Своп-кейс() |
Обрезанный Слева | начало полосы() |
Подстрижено Правильно | полосатый() |
Более подробную информацию об этом можно найти в официальной документации . Мы рассмотрим реализацию некоторых из них в следующем разделе.
3. Зависимость Maven
Давайте начнем с добавления необходимой зависимости Maven. Последнюю версию этой библиотеки можно найти на Maven Central :
org.cactoos cactoos 0.43
4. Струны
Cactus имеет широкий спектр классов для управления объектом String .
4.1. Создание строкового объекта
Давайте посмотрим, как объект String может быть создан с помощью Текста класса:
String testString = new TextOf("Test String").asString();
4.2. Форматированная строка
В случае, если необходимо создать форматированную строку , мы можем использовать класс FormattedText :
String formattedString = new FormattedText("Hello %s", stringToFormat).asString();
Давайте проверим, что этот метод на самом деле возвращает форматированную строку :
StringMethods obj = new StringMethods(); String formattedString = obj.createdFormattedString("John"); assertEquals("Hello John", formattedString);
4.3. Строки Нижнего/Верхнего Регистра
Класс с пониженным значением преобразует Строку в нижний регистр, используя свой Текст объекта :
String lowerCaseString = new Lowered(new TextOf(testString)).asString();
Аналогично, заданная строка может быть преобразована в верхний регистр с помощью класса Upper :
String upperCaseString = new Upper(new TextOf(testString)).asString();
Давайте проверим результаты этих методов с помощью тестовой строки:
StringMethods obj = new StringMethods(); String lowerCaseString = obj.toLowerCase("TeSt StrIng"); String upperCaseString = obj.toUpperCase("TeSt StrIng"); assertEquals("test string", lowerCaseString); assertEquals("TEST STRING", upperCaseString);
4.4. Проверьте наличие пустой строки
Как обсуждалось ранее, библиотека Cactoos предоставляет класс IsBlank для проверки null или пустой строки :
new IsBlank(new TextOf(testString)) != null;
5. Коллекции
Эта библиотека также предоставляет несколько классов для работы с Коллекциями . Давайте взглянем на некоторые из них.
5.1. Повторение набора
Мы можем перебирать список строк, используя служебный класс И :
new And((String input) -> LOGGER.info(new FormattedText("%s\n", input).asString()), strings).value();
Приведенный выше метод является функциональным способом перебора списка Strings , который записывает выходные данные в регистратор.
5.2. Фильтрация коллекции
Класс Filtered можно использовать для фильтрации коллекции на основе определенных критериев:
CollectionfilteredStrings = new ListOf<>(new Filtered<>(string -> string.length() == 5, new IterableOf<>(strings)));
Давайте проверим этот метод, передав несколько аргументов, только 3 из которых удовлетворяют критериям:
CollectionUtils obj = new CollectionUtils(); Liststrings = new ArrayList () { add("Hello"); add("John"); add("Smith"); add("Eric"); add("Dizzy"); }; int size = obj.getFilteredList(strings).size(); assertEquals(3, size);
Некоторые другие классы для коллекций, предоставляемых этой библиотекой, можно найти в официальной документации .
6. Заключение
В этом уроке мы рассмотрели библиотеку Cactoos и некоторые классы, которые она предоставляет для обработки строк и структуры данных.
В дополнение к ним библиотека также предоставляет другие служебные классы для Операции ввода-вывода а также Дата и время .
Как обычно, примеры кода, используемые в этом руководстве, доступны на GitHub .