Обработка строк в стиле функционального программирования Java
Источник: DZone В этой статье рассмотрено несколько методов класса String, которые позволяют выполнять обработку строк в стиле функционального программирования.![Кофе-брейк #274. Обработка строк в стиле функционального программирования Java. Что такое файл .properties в Java - 1](https://cdn.javarush.com/images/article/c268d87a-03e9-44c3-a284-81e509ad9783/800.jpeg)
chars()
chars(): этот метод облегчает эффективное управление символами в Java, возвращая IntStream. IntStream представляет собой последовательность значений Integer, каждое из которых соответствует кодовому значению того или иного символа Unicode в предоставленной строке. Кодовое значение — это числовой идентификатор, присвоенный символу в стандарте Unicode. Оно необходимо для идентификации и кодирования символов. Давайте разберемся с методом chars() на примере. Напишем программу, удаляющую заданный символ из строки. Для начала рассмотрим решение этой проблемы с помощью императивного, нефункционального подхода, избегая использования методологии chars() или stream.
private static String removeChar(String input, char c){
StringBuilder sb = new StringBuilder();
char[] charArray = input.toCharArray();
for (char ch : charArray) {
if (ch != c) {
sb.append(ch);
}
}
return sb.toString();
}
Теперь сравним это с функциональным подходом:
private static String removeChar(String str, char c){
return str.chars()
.filter(ch -> ch != c)
.mapToObj(ch -> String.valueOf((char) ch))
.collect(Collectors.joining());
}
Императивный, нефункциональный подход включает традиционную итерацию по символам с использованием StringBuilder для построения измененной строки. Тогда как функциональный подход использует метод chars() и Stream API, обеспечивая более краткое и выразительное решение.
transform()
transform(): Функция преобразования (transform) — это функция высшего порядка, которая принимает функцию в качестве аргумента. Функция transform предлагает более краткий и функциональный способ применения преобразований к строке. Функцию transform можно использовать, например, для объединения преобразований в строку. Рассмотрим сценарий, в котором вы хотите очистить и отформатировать пользовательский ввод, введенный в форму. Пользователи могут вводить свои имена с лишними пробелами, заглавной буквой в середине слова и другими ненужными символами. Для стандартизации и очистки этих входных данных можно использовать цепочку строк.
String userInput = " JoHN-dOe ";
String cleanedInput = userInput
.transform(String :: trim)
.transform(String :: toLowerCase)
.transform(user -> user.replaceAll("-", ""));
cleanedInput // johndoe
lines()
lines(): функция lines возвращает поток строк, извлеченных из заданной строки, разделенных символами конца строки, такими как \n, \r и \r\n. Метод Java String lines() выглядит более выгодно по сравнению с методом split() благодаря ленивой подаче элементов и более быстрому обнаружению терминаторов строк. В случаях, когда строка пуста, функция lines возвращает ноль строк.
String text = "The lines function returns a stream of lines extracted ,\nThe Java String lines() method proves advantageous ;\nIn cases where the string is empty,\n"
+ "the lines' function returns zero lines.";
text.lines()
.map(String :: toUpperCase)
.filter(line -> line.contains("I"))
.forEach(System.out::println);
Строка “text” содержит несколько строк текста. Мы используем метод lines() для получения потока строк из текста. Затем мы используем операцию map для преобразования каждой строки в верхний регистр. Операция filter применяется для сохранения только строк, содержащих букву “I”, а операция forEach печатает измененные строки.
Описанные функции предоставляют мощный и лаконичный способ работы со строками. Они предлагают функциональный подход, используя потоки для эффективной обработки и фильтрации, обеспечивая при этом неизменность. Объединение этих функций с другими потоковыми операциями позволяет выполнять сложные, но лаконичные преобразования, создавая более чистый и функциональный стиль.
Что такое файл .properties в Java
Источник: Medium Изучив это учебное руководство, вы научитесь правильно использоваться в своей работе файл properties и поймете, для чего он необходим. В Java “файл свойств” (properties file) — это файл, в котором хранятся данные конфигурации в формате пары ключ-значение (key-value). Этот файл обычно используется для хранения настроек конфигурации для приложений Java. Файлы properties обычно представляют собой простые текстовые файлы с расширением .properties. Вот базовый пример файла properties. В этом примере мы создадим файл с именем (config.properties).
# Database Configuration
database.url=jdbc:mysql://localhost:3306/mydatabase
database.username=test
database.password=password
port= 9000
# Server Configuration
server.host=127.0.0.1
server.port=8080
В Java класс Properties используется для работы с файлами properties. Этот класс расширяет Hashtable и представляет постоянный набор свойств (properties).
Вот простой пример того, как вы можете использовать класс Properties для чтения из файла properties.
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
public class PropertiesDemo {
public void dbConnection() {
Properties properties = new Properties();
FileInputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream("config.properties");
properties.load(fileInputStream);
String url = properties.getProperty("database.url");
String username = properties.getProperty("database.username");
String password = properties.getProperty("database.password");
String port = properties.getProperty("port");
String serverHost = properties.getProperty("server.host");
String serverPort = properties.getProperty("server.port");
System.out.println("URL: " + url);
System.out.println("Username: " + username);
System.out.println("Password: " + password);
System.out.println("Port: " + port);
System.out.println("Server Host: " + serverHost);
System.out.println("Server Port: " + serverPort);
} catch (IOException ex) {
System.out.println(ex.getMessage());
} finally {
if (fileInputStream != null) {
try {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
PropertiesDemo propertiesDemo = new PropertiesDemo();
propertiesDemo.dbConnection();
}
}
В приведенном выше примере:Создаем объект Properties.
Properties properties = new Properties();
- Загружаем свойства из файла config.properties методом load().
- С помощью метода мы извлекаем значения конкретных свойств getProperty().
- Затем мы распечатываем значения этих свойств.
Каково основное использование файлов properties?
Файлы properties обычно используются для хранения конфигураций, которые могут меняться со временем, например, настройки подключения к базе данных, настройки приложения и так далее. Файлы properties всегда следует создавать по указанному ниже пути.![Кофе-брейк #274. Обработка строк в стиле функционального программирования Java. Что такое файл .properties в Java - 2](https://cdn.javarush.com/images/article/e7d066af-f146-4756-8517-32b9543720a5/512.jpeg)
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ