Рубрики
Без рубрики

Путеводитель по библиотеке Кактусов

Изучите библиотеку Cactoos и некоторые классы, которые она предоставляет для обработки строк и структур данных.

Автор оригинала: baeldung.

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 можно использовать для фильтрации коллекции на основе определенных критериев:

Collection filteredStrings 
  = new ListOf<>(new Filtered<>(string -> string.length() == 5, new IterableOf<>(strings)));

Давайте проверим этот метод, передав несколько аргументов, только 3 из которых удовлетворяют критериям:

CollectionUtils obj = new CollectionUtils(); 

List strings = new ArrayList() {
    add("Hello"); 
    add("John");
    add("Smith"); 
    add("Eric"); 
    add("Dizzy"); 
};

int size = obj.getFilteredList(strings).size(); 

assertEquals(3, size);

Некоторые другие классы для коллекций, предоставляемых этой библиотекой, можно найти в официальной документации .

6. Заключение

В этом уроке мы рассмотрели библиотеку Cactoos и некоторые классы, которые она предоставляет для обработки строк и структуры данных.

В дополнение к ним библиотека также предоставляет другие служебные классы для Операции ввода-вывода а также Дата и время .

Как обычно, примеры кода, используемые в этом руководстве, доступны на GitHub .